forked from xiaoyaoworm/Leetcode-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
160_getIntersectionNode.java
47 lines (47 loc) · 1.15 KB
/
160_getIntersectionNode.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
* 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;
int lengthA = 0;
int lengthB = 0;
ListNode runA = headA;
ListNode runB = headB;
while(runA!=null){
runA = runA.next;
lengthA++;
}
while(runB!=null){
runB = runB.next;
lengthB++;
}
if(lengthA >= lengthB){
int gap = lengthA-lengthB;
while(gap > 0){
headA = headA.next;
gap--;
}
} else{
int gap = lengthB-lengthA;
while(gap>0){
headB = headB.next;
gap--;
}
}
while(headA!=null && headB!=null){
if(headA.val == headB.val) return headA;
headA = headA.next;
headB = headB.next;
}
return null;
}
}