[Leetcode]160. Intersection of Two Linked Lists
生活随笔
收集整理的這篇文章主要介紹了
[Leetcode]160. Intersection of Two Linked Lists
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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:
/*** 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) {if (headA==null||headB==null)return null;ListNode curA = headA,curB = headB;while (curA!=null&&curB!=null){if (curA.next ==null&&curB.next==null&&curA!=curB)return null; //如果走到了鏈的盡頭,而這盡頭又不是交//點,說明兩條鏈不相交else if (curA==curB) //如果同時到交點了,就跳出循環break;if (curA.next == null) //下面這段可能需要畫圖理解curA = headB; //如果兩條鏈有交點,則curA和curB到else //交點的距離是相同的curA = curA.next;if (curB.next == null)curB = headA;else curB = curB.next;}return curA;} }?
- 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.
轉載于:https://www.cnblogs.com/David-Lin/p/7778509.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的[Leetcode]160. Intersection of Two Linked Lists的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode]147. Inser
- 下一篇: 二维码简单实现