[Bug] 两个链表,交错组合为另一个链表
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.
谨慎之!