LeetCode-Easy部分中标签为LinkedList 160. Intersection of Two Linked Lists
来源:互联网 发布:淘宝网店模块 编辑:程序博客网 时间:2024/05/16 12:41
原题
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 → b3begin 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.
题目分析
求2个链表的交集所在的节点。注意题目中给出的注意事项。
代码实现
public ListNode GetIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) return null; ListNode a = headA; ListNode b = headB; while (a!= b) { if (a == null) a = headB; else { a = a.next; } if (b == null) b = headA; else { b = b.next; } } return a; }
说实话这个代码不是非常好理解。我们做一个模拟看一下,到底这个算法的意思是什么。
static void Main(string[] args) { SolutionLinkedList s = new SolutionLinkedList(); ListNode headA = s.CreateLinkList(new int[] { 1, 2, 3,5,6 }); ListNode headB = headA.next; ListNode interNode = s.GetIntersectionNode(headA, headB); Console.ReadLine(); }
程序比较的过程
更多LinkList题目
http://blog.csdn.net/daigualu/article/details/69077428
1 0
- LeetCode-Easy部分中标签为LinkedList 160. Intersection of Two Linked Lists
- LeetCode-Easy部分中标签为LinkedList 21. Merge Two Sorted Lists
- LeetCode-Easy部分中标签为 Binary Search 349. Intersection of Two Arrays
- LeetCode-Easy部分中标签为 Binary Search 349. Intersection of Two Arrays 350. Intersection of Two Arrays II
- Leetcode 160. Intersection of Two Linked Lists (Easy) (cpp)
- 【LeetCode】160.Intersection of Two Linked Lists(Easy)解题报告
- LeetCode-Easy部分中标签为LinkedList 203Remove Linked List Elements
- 160. Intersection of Two Linked Lists (Easy)
- LeetCode-Easy部分中标签为LinkedList的所有题目
- LeetCode-Easy部分中标签为Math 231. Power of Two
- LeetCode-Easy部分中标签为Two Pointers 345. Reverse Vowels of a String
- [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
- [LeetCode]160. Intersection of Two Linked Lists
- LeetCode--160. Intersection of Two Linked Lists
- LeetCode 160. Intersection of Two Linked Lists
- 提升gradle编译速度和gradle优化管理 在
- linux清空日志shell脚本
- 蓝牙4.0BLE的使用与封装
- MacOS安装Python环境
- android 开发技巧
- LeetCode-Easy部分中标签为LinkedList 160. Intersection of Two Linked Lists
- 数据结构:图的存储结构之邻接表
- Linux学习 第三单元
- CSS选择器
- Echarts使用总结(一)
- 基于bootgrid,利用HTML5拖拽实现表格列互换并添加至localStorage
- activity之间数据传递,数据量过大导致无法启动
- 模拟——洛谷P3138 [USACO16FEB]负载平衡Load Balancing
- 数据获取成本降低 大数据产业迎发展机遇