https://leetcode.com/problems/intersection-of-two-linked-lists/

두 리스트의 교차점이 있는지 확인하고, 있다면 해당 노드를 return 시켜준다.

두 포인터를 하나씩 옮기다가 끝을 만나면, 다른 list의 head로 옮겨준다. 그러고 다시 하나씩 옮긴다.

그러다 같은걸 만나면 그것을 리턴시켜주고, 만약 만나지 못하면 둘다 NULL이 되는 순간 나와서 NULL 을 반환 한다.

class Solution {
 public:
	 ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
		 if (headA == NULL || headB == NULL) return NULL;
		 ListNode* nodeOne = headA;
		 ListNode* nodeTwo = headB;

		 while (nodeOne != nodeTwo)
		 {
			 if (nodeOne == NULL) nodeOne = headB;
			 else nodeOne = nodeOne->next;

			 if (nodeTwo == NULL) nodeTwo = headA;			 
			 else nodeTwo = nodeTwo->next;
		 }

		 return nodeOne;
	 }
 };