/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { ListNode* savedPHead1 = pHead1; ListNode* savedPHead2 = pHead2; while(pHead1 != pHead2){ pHead1 = pHead1 == nullptr ? savedPHead2 : pHead1->next; pHead2 = pHead2 == nullptr ? savedPHead1 : pHead2->next; } return pHead1; } };