链表的共同节点
Easy; LinkedList
Last updated
Easy; LinkedList
Last updated
输入两个链表,找出它们的第一个公共节点。
如下面的两个链表:
在节点 c1 开始相交。
示例 1
而同一个地址值意味着存储的内容一致,以此往下推,说明从第一个公共结点之后,两链表的所有结点都是一样的。 找到公共节点后,因为节点地址一样,后面连的内容都是一样,剩下的所有节点都是公共点
例子 list1: 1-2-3 6-7-8-9-0 list2: 10-12 -6-7-8-9-0
把他们拼接情况有:
1-2-3 6-7-8-9-0 + 10-12 -6-7-8-9-0
10-12 -6-7-8-9-0 + 1-2-3 6-7-8-9-0
其中加粗的6的数字就是第一个公共点。 第一个公共的节点6 很明显前面片段的长度是3+ 5 + 2 或者 2+ 5 + 3 长度一样,只不过不同的片段换了位置。也就是说只要把两个list前后拼接起来就会时如果用两个指针分别从两个list 遍历, 当两个指针相遇时,那个相遇点就是第一个公共点。
Time Complexity: O(n). Space Complexity: O(1)