面试题 02.07. 链表相交
【Leetcode】面试题 02.07. 链表相交
代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func getIntersectionNode(headA, headB *ListNode) *ListNode {
// pa,pb分别指向headA,headB
pa, pb := headA, headB
// 当pa不等于pb,就一直移动一步
for pa != pb {
// 如果pa走到了nil,就跳转到headB,否则移动一步
if pa == nil {
pa = headB
}else {
pa = pa.Next
}
// 如果pb走到了nil,就跳转到headA,否则移动一步
if pb == nil {
pb = headA
}else {
pb = pb.Next
}
}
// 返回pa,此时pa一定跟pb相交,为nil或者两个链表中的相交节点
return pa
}