标签:
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:
null
./** * 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) { ListNode result = null; ListNode tempa=headA; ListNode tempb=headB; if (headA == null || headB == null) { return null; } int a = 1, b = 1; while (headA.next != null) { a++; headA = headA.next; } while (headB.next != null) { b++; headB = headB.next; } int temp = 0; if (a >= b) { temp = a - b; while (temp != 0) { tempa = tempa.next; temp--; } } else { temp = b - a; while (temp != 0) { tempb = tempb.next; temp--; } } while (tempa!= null) { if (tempa == tempb) { result = tempa; break; } else { tempa = tempa.next; tempb = tempb.next; } } return result; } }
leetcode Intersection of Two Linked Lists
标签:
原文地址:http://www.cnblogs.com/lilyfindjobs/p/4222971.html