面接問題02.07.チェーンテーブル交差

641 ワード

面接問題02.07.チェーンテーブル交差
2つの(一方向)チェーンテーブルが与えられ、交差するかどうかを判定し、交点を返します.交差の定義は、ノードの値ではなく、ノードの参照に基づいていることに注意してください.すなわち、あるチェーンテーブルのk番目のノードが別のチェーンテーブルのj番目のノードと同じノードである場合(参照は完全に同じ)、この2つのチェーンテーブルは交差する
考え方:2つのチェーンテーブルをつなぎ合わせ、同じ場合は、後で同じ参照が表示されます.
例えば4 1 8 4 5 5 0 1 8 4 5および5 0 1 8 4 4 4 4
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
       ListNode *a=headA, *b=headB;
       while(a != b){
           if(a != NULL) a = a->next;
           else a = headB;
           if(b != NULL) b = b->next;
           else b = headA;
       }
       return a;
    }
};