t*8 发帖数: 14 | 1 1.翻转两个链表,然后比较
2.分别把两个链表的节点放到两个stack里面,然后同时pop这个stack比较
还有别的办法吗? | b*****n 发帖数: 618 | 2 还有一种做法,可以把两个链表的长度先求出来,这样就知道长度的差
然后再从头开始遍历一遍就行了 | h*c 发帖数: 23 | 3 Another solution: virtually concatenate two linked list
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
if (!headA || !headB)
return NULL;
ListNode *currA = headA, *currB = headB;
while (currA != currB) {
currA = (currA) ? currA->next : headB;
currB = (currB) ? currB->next : headA;
}
return currA;
} |
|