package main

import . "nc_tools"

/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 *
 * @param pHead1 ListNode类
 * @param pHead2 ListNode类
 * @return ListNode类
 */
func FindFirstCommonNode(pHead1 *ListNode, pHead2 *ListNode) *ListNode {
	// write code here
	p1, p2 := pHead1, pHead2

	// p1 1 2 3 6 7 | 4 5 6 7
	// p2 4 5 6 7 | 1 2 3 6 7
	for p1 != p2 {
		if p1 == nil {
			p1 = pHead2
		} else {
			p1 = p1.Next
		}

		if p2 == nil {
			p2 = pHead1
		} else {
			p2 = p2.Next
		}
	}

	return p1
}