题解 | #两个链表的第一个公共结点#
两个链表的第一个公共结点
https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46
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 {
// 1, 2, 3, 6, 7, 4, 5, 6, 7
// 4, 5, 6, 7, 1, 2, 3, 6, 7
// a + b = b + a 有公共点必相遇
p1, p2 := pHead1, pHead2
for p1 != p2 {
if p1 == nil {
p1 = pHead2
}else{
p1 = p1.Next
}
if p2 == nil {
p2 = pHead1
}else{
p2 = p2.Next
}
}
return p1
}
