160. 相交链表 - 力扣(LeetCode) 声明:大学生菜鸟学习记录,大佬看划走
笨方法用空间哈希。
好方法 用双指针 时间复杂度为O(m+n),空间复杂度为O(1) /**
-
Definition for singly-linked list.
-
public class ListNode {
-
int val; -
ListNode next; -
ListNode(int x) { -
val = x; -
next = null; -
} -
} */ public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { // 如果a比b短,那么a走完要从b的头节点开始走,b走完就从a开始,,当长的回到短的头节点时,此时它们的尾巴一定是一样长的。a比b长同理。 // 去同时遍历值得返回相等的点或者同时为null即可 ListNode a = headA, b = headB; while(a != b) { a = a == null ? headB : a.next; b = b == null ? headA : b.next; } return a;
} }