160. Intersection of Two Linked Lists
来源:互联网 发布:翻墙软件大全 编辑:程序博客网 时间:2024/06/03 22:42
Write a program to find the node at which the intersection of two singly linked lists begins.
For example, the following two linked lists:
A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3
begin to intersect at node c1.
Notes:
- If the two linked lists have no intersection at all, return
null
. - The linked lists must retain their original structure after the function returns.
- You may assume there are no cycles anywhere in the entire linked structure.
- Your code should preferably run in O(n) time and use only O(1) memory.
Credits:
Special thanks to @stellari for adding this problem and creating all test cases.
Subscribe to see which companies asked this question.
Java Code:
/** * 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) { ListNode ha = headA; ListNode hb = headB; int la = 0; int lb = 0; while (ha != null || hb != null) { if (ha != null) { la++; ha = ha.next; } if (hb != null) { lb++; hb = hb.next; } } ha = headA; hb = headB; if (la < lb) { ha = headB; hb = headA; la = lb + la; lb = la - lb; la = la - lb; } int k = la - lb; while (ha != null && hb != null && ha != hb) { ha = ha.next; if (--k < 0) { hb = hb.next; } } return ha == hb ? ha : null; }}
0 0
- [LeetCode]160.Intersection of Two Linked Lists
- LeetCode 160. Intersection of Two Linked Lists
- 【LeetCode】160.Intersection of Two Linked Lists
- [leetcode] 160.Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- [LeetCode]160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- LeetCode--160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- LeetCode 160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- 【LeetCode】160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- 160. Intersection of Two Linked Lists
- Jquery-zTree的基本用法
- propertyanimator(属性动画)之valuesanimator(动画执行类)
- Nginx中FastCGI配置优化
- Q102:光线追踪场景(5)——驭龙台
- ~一个数组实现两个栈~
- 160. Intersection of Two Linked Lists
- 牛客网-明明的随机数
- 8、理解进程调度时机跟踪分析进程调度与进程切换的过程
- 关于《OPENCL异构并行计算》中工作组间同步的分析
- 正则表达式的使用
- 基于Maven的SSM整合详解
- MySQL (6) innoDB 和 MyISAM
- Linux基本命令:文件操作
- maven管理的项目配置找不到jar包中的类