Java认证:Java笔试题附答案

来源:java认证发布时间:2012-11-12 13:05:47java认证视频


  (2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
  Node *Merge(Node *head1 , Node *head2)
  {
  if ( head1 == NULL)
  return head2;
  if ( head2 == NULL)
  return head1 ;
  Node *head = NULL ;
  Node*p1 = NULL;
  Node *p2 = NULL;
  if ( head1->data < head2->data )
  {
  head = head1 ;
  p1 = head1->next;
  p2 = head2 ;
  }
  else
  {
  head = head2 ;
  p2 = head2->next ;
  p1 = head1 ;
  }
  Node *pcurrent = head ;
  while ( p1 != NULL && p2 != NULL)
  {
  if ( p1->data <= p2->data )
  {
  pcurrent->next = p1;
  pcurrent = p1 ;
  p1 = p1->next ;
  }
  else
  {
  pcurrent->next = p2 ;
  pcurrent = p2 ;
  p2 = p2->next ;
  }
  }
  if ( p1 != NULL )
  pcurrent->next = p1 ;
  if ( p2 != NULL )
  pcurrent->next = p2 ;
  return head ;
  }
  (3)已知两个链表head1 和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。 (Autodesk)
  答案:
  Node *MergeRecursive(Node *head1 , Node *head2)
  {
  if ( head1 == NULL )
  return head2 ;
  if ( head2 == NULL)
  return head1 ;
  Node *head =NULL ;
  if ( head1->data < head2->data )
  {
  head = head1 ;
  head->next = MergeRecursive(head1->next,head2);
  }
  else
  {
  head = head2 ;
  head->next = MergeRecursive(head1,head2->next);
  }
  return head ;
  }

上一页345下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答