160 尋找連結串列交點
阿新 • • 發佈:2018-12-20
解法一(兩連結串列共同字尾長度相同)
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if (headA == nullptr || headB == nullptr) return nullptr; int len_a = 1, len_b = 1; ListNode *temp_a=headA,*temp_b=headB; while (temp_a->next != nullptr) { temp_a = temp_a->next; ++len_a; } while (temp_b->next != nullptr) { temp_b = temp_b->next; ++len_b; } int len = len_a - len_b; if (len > 0) while (len > 0) { headA = headA->next; --len; } else while (len < 0) { headB = headB->next; ++len; } while (headA != nullptr) { if (headA == headB) return headA; headA = headA->next; headB = headB->next; } return nullptr; }
解法二
set不能儲存重複元素