码迷,mamicode.com
首页 > 其他好文 > 详细

[Bug] 两个链表,交错组合为另一个链表

时间:2015-08-19 22:52:35      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

ListNode dummy3 = new ListNode(-1);
ListNode pre = dummy3;
while(head2!=null&&head1!=null){
     pre.next=head1;
     ListNode head1next = head1.next;
     head1.next=head2;
     ListNode head2next = head2.next;
     head2.next=null;
     pre=head2;
     head1=head1next;
     head2=head2next;
 }

上面这段代码时正确的写法。

 1 ListNode dummy3 = new ListNode(-1);
 2 ListNode pre = dummy3;
 3 while(head2!=null&&head1!=null){
 4      pre.next=head1;
 5      pre.next.next = head2;
 6      //ListNode head1next = head1.next;
 7      //head1.next=head2;
 8      //ListNode head2next = head2.next;
 9      //head2.next=null;
10      pre=head2;
11      head1=head.next;
12      head2=head.next;
13  }

上面的代码时错误的,在第5行代码执行完毕之后实际上head1的next指针已经丢失了,原因是在第5行代码执行的时候实际上是讲head1的next指针进行了重新定义,指向了head2,但是在更改这个指针之前,它的原先的next指针并没有修改,这个next指针将成为新的head1.

 

谨慎之!

[Bug] 两个链表,交错组合为另一个链表

标签:

原文地址:http://www.cnblogs.com/deepblueme/p/4743371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!