LeetCode: Intersection of Two Linked Lists
来源:互联网 发布:印度同志聊天软件 编辑:程序博客网 时间:2024/05/01 07:23
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; * struct ListNode *next; * }; */struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) { if (headA == NULL || headB == NULL) return NULL; struct ListNode* tmpA = headA; struct ListNode* tmpB = headB; int cntA = 1; int cntB = 1; while(tmpA->next != NULL) { cntA++; tmpA = tmpA->next; } while(tmpB->next != NULL) { cntB++; tmpB = tmpB->next; } if (tmpA != tmpB) return NULL; tmpA = headA; tmpB = headB; while(cntA > 0) { if (cntA > cntB) { tmpA = tmpA->next; cntA--; } else if (cntB > cntA) { tmpB = tmpB->next; cntB--; } else { while(tmpA != NULL) { if (tmpA == tmpB) return tmpA; else { tmpA = tmpA->next; tmpB = tmpB->next; } } } } return NULL; }
1 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
- android 定义 程序 Scheme 接收特定URI开启Activity
- 贝塞尔曲线
- 隐马尔可夫模型
- [leetcode] 260. Single Number III
- login表单弹出效果制作与实现
- LeetCode: Intersection of Two Linked Lists
- Android TextView show Html
- C++学习笔记(字符串string、vector_deque、queue,multiset、map、multimap、容器拷贝问题)
- 2016 ACM/ICPC Asia Regional Dalian Online
- app实现上传图片
- 原生js访问json
- Java实现字符串中单词的逆转
- Hadoop基础教程地址
- win7 下安装mysql 5.7.14 ,在启动服务部分一直过不去