LeetCode Intersection of Two Linked Lists
来源:互联网 发布:南京家庭网络布线 编辑:程序博客网 时间:2024/04/30 14:35
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.
题意:找两个链的第一个公共节点
思路:首先得到两个链的长度,然后差就相当于是相差的步数了,较长的移动步数的话,那么两个链再同时走第一个节点就是公共节点了;还有哈希和暴力两种方法
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode *pa=headA, *pb=headB;int lengthA = 0, lengthB = 0;while (pa) {pa=pa->next;lengthA++;}while (pb) {pb=pb->next;lengthB++;}if (lengthA <= lengthB) {int n = lengthB - lengthA;pa = headA;pb = headB;while(n) {pb = pb->next;n--;}} else{int n = lengthA - lengthB;pa = headA;pb = headB;while(n) {pa = pa->next;n--;}}while (pa != pb) {pa = pa->next;pb = pb->next;}return pa; }};
0 0
- [leetcode] [leetcode]Intersection of Two Linked Lists
- 【LeetCode】Intersection of Two Linked Lists
- LeetCode: Intersection of Two Linked Lists
- [Leetcode] Intersection of Two Linked Lists
- [Leetcode]Intersection of Two Linked Lists
- LeetCode:Intersection of Two Linked Lists
- leetcode: Intersection of Two Linked Lists
- Leetcode: Intersection of Two Linked Lists
- Intersection of Two Linked Lists--leetcode
- [leetcode]Intersection of Two Linked Lists
- leetcode:Intersection of Two Linked Lists
- leetcode之Intersection of Two Linked Lists
- 【Leetcode】:Intersection of Two Linked Lists
- leetcode Intersection of Two Linked Lists
- [LeetCode]Intersection of Two Linked Lists
- leetcode: Intersection of Two Linked Lists
- 【LeetCode】Intersection of Two Linked Lists
- LeetCode Intersection of Two Linked Lists
- JBoss 源代码svn下载地址
- 汉字二级字库-yt
- 算法与数据结构基础10:C++实现——拓扑排序
- 用户需求分析:背后隐藏的门槛---TOMsInsight 2014.10.12
- DWR入门教程
- LeetCode Intersection of Two Linked Lists
- onsubmit getElementById getElementByName
- Test #3 2014/12/13题解
- C – 下沙小面的(2)
- 【学习】累
- Blocks 简明实用指南(A Short Practical Guide to Blocks)
- 数据分析与R语言视频教程
- 去除工程的.svn隐藏文件夹
- 免费增值应用正在“杀死”游戏开发者?