LeetCode 160. Intersection of Two Linked Lists
来源:互联网 发布:g96恒线速度编程实例 编辑:程序博客网 时间:2024/06/05 09:40
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.
又是考研题。先计算出两个链表长度差,让两个链表按照尾部对齐,从同一个位置开始同时遍历,当遍历到相同结点时返回。
/** * 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) { if(!headA || !headB) return NULL; ListNode* node; int len1 = 0, len2 = 0; node = headA; while(node){ len1 ++; node = node -> next; } node = headB; while(node){ len2 ++; node = node -> next; } if(len1 > len2){ int count = len1 - len2; while(count --) headA = headA -> next; } else if(len1 < len2){ int count = len2 - len1; while(count --) headB = headB -> next; } while(headA && headB){ if(headA == headB) return headA; headA = headA -> next; headB = headB -> next; } return 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
- [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
- 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
- 160.[Leetcode]Intersection of Two Linked Lists
- 69 个经典 Spring 面试题和答案
- Java Web开发Tomcat中三种部署项目的方法
- SVN版本控制与分支设置
- FlycoTabLayout使用
- 关于简单的年末员工抽奖
- LeetCode 160. Intersection of Two Linked Lists
- jdk1.7--ArrayList
- 【SQLSERVER】 存储过程
- JSON未定义
- android 蓝牙通信 聊天
- Java网络编程
- 《深入浅出 Java Concurrency》—并发容器 ConcurrentMap
- jquery去掉空格的方法
- ThreadLocal定义、作用