链表相交

Bernie


Bernie
203. 链表相交
思路:
- 用 map 存储 headA 的节点
- 遍历 headB,如果 map 中存在 headB 的节点,则返回 headB
- 遍历完 headB 仍未返回,则返回 null
typescript 解法
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} headA
* @param {ListNode} headB
* @return {ListNode}
*/
var getIntersectionNode = function (headA, headB) {
let map1 = new Map();
while (headA) {
map1.set(headA, true);
headA = headA.next;
}
while (headB) {
if (map1.get(headB)) {
return headB;
}
headB = headB.next;
}
return null;
};
go 解法
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func getIntersectionNode(headA, headB *ListNode) *ListNode {
map1 := make(map[*ListNode]bool)
for headA != nil {
map1[headA] = true
headA = headA.Next
}
for headB != nil{
if map1[headB] {
return headB
}
headB = headB.Next
}
return nil
}