LeetCode 面试题 02.07. 链表相交
题目描述
思路分析
快慢指针
参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func getIntersectionNode(headA, headB *ListNode) *ListNode {
a, b := headA, headB
for a != b {
if a != nil {
a = a.Next
} else {
a = headB
}
if b != nil {
b = b.Next
} else {
b = headA
}
}
return a
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
func getIntersectionNode(headA, headB *ListNode) *ListNode {
lengthA := 0
for cur := headA; cur != nil; cur = cur.Next {
lengthA++
}
lengthB := 0
for cur := headB; cur != nil; cur = cur.Next {
lengthB++
}
l1, l2 := headA, headB
for lengthA > lengthB {
l1 = l1.Next
lengthA--
}
for lengthB > lengthA {
l2 = l2.Next
lengthB--
}
for l1 != l2 {
l1 = l1.Next
l2 = l2.Next
}
return l1
}
1
write your code here
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用