【LeetCode】Intersection of Two Linked Lists
2014-11-27 21:55
453 查看
查找两个链表的第一个公共节点,如果两个节点的尾节点相同,肯定存在公共节点
方法: 长的链表开始多走 (h1的数量 - h2的数量)步,然后和短链表同步往下走,遇到的第一个相同的节点就是最早的公共节点
方法: 长的链表开始多走 (h1的数量 - h2的数量)步,然后和短链表同步往下走,遇到的第一个相同的节点就是最早的公共节点
/** * 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 h1 = headA; ListNode h2 = headB; int count1 = 1, count2 = 1; while(h1.next != null){ count1++; h1 = h1.next; } while(h2.next != null){ count2++; h2 = h2.next; } if(h1 != h2) return null; else{ int count = Math.abs(count1 - count2); if(count2 > count1){ h1 = headB; h2 = headA; } else{ h1 = headA; h2 = headB; } while((count--) > 0){ h1 = h1.next; } while(h1 != null&&h2 != null && h1 != h2){ h1 = h1.next; h2 = h2.next; } return h1; } } }
相关文章推荐
- 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[Linked List]: 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
- Leetcode_160_Intersection of Two Linked Lists