题目描述
输入两个链表,找出它们的第一个公共节点。
解题思路
- 双指针法。
- a走完再走b,b走完再走a,这样两个链表所走一样长,且在第一个公共节点停止
代码实现
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func getIntersectionNode(headA, headB *ListNode) *ListNode {
a := headA
b := headB
for a != b {
if a != nil {
a = a.Next
} else {
a = headB
}
if b != nil {
b = b.Next
} else {
b = headA
}
}
return a
}