go实现
首先,使用两个指针分别指向两个链表
如果其中一个到达了终点,则把另一个链表头节点赋值给对应指针,
直到最后两个指针指向同一个位置
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
l1, l2 := pHead1, pHead2
for l1 != l2 {
if l1 == nil {
l1 = pHead2
}else{
l1 = l1.Next
}
if l2 == nil {
l2 = pHead1
}else{
l2 = l2.Next
}
}
return l1
} 
京公网安备 11010502036488号