import java.util.Stack;
class ListNode {
int val;
ListNode next =
null;
ListNode(
int val) {
this.val = val;
}
}
public class Solution {
public ListNode
FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
if(pHead1 ==
null || pHead2 ==
null)
return null;
Stack<ListNode> stack1 =
new Stack<>();
Stack<ListNode> stack2 =
new Stack<>();
while (pHead1 !=
null) {
stack1.push(pHead1);
pHead1 = pHead1.next;
}
while (pHead2 !=
null) {
stack2.push(pHead2);
pHead2 = pHead2.next;
}
ListNode pre =
null;
while (
true) {
if(stack1.isEmpty() || stack2.isEmpty())
break;
ListNode l1 = stack1.pop();
ListNode l2 = stack2.pop();
if(l1 == l2) {
pre = l1;
}
else {
break;
}
}
return pre;
}
}