第三次做这道题了,思路很明确。
然后就错了,翻出笔记,之前细细理解并总结了(我是真的失忆吗?为什么现在记忆力这么差啊,以前看过就能记住,现在疯狂记记不住)
错点在于“else":
如果把next的行为一起写在判断语句之外的话,在一个链表为空的情况下,它会变得和另一个链表重合。就错了。
跳出循环是指他们同时为null就跳出了,以前不理解想开了记下来,再来第三遍还是忘了,人的大脑太可怕了,什么都能加工,都能忘记。
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode la=headA;
ListNode lb=headB;
while(la!=lb){
if(la==null){
la=headB;
}else{
la=la.next;
}
if(lb==null){
lb=headA;
}else{
lb=lb.next;
}
}
return la;
}
不过这个题也是很简单的啦