/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
// 打印两个链表的公共结点,简单的代码,但是用了很久。双层循环:时间复杂度O(m*n),空间复杂度O(1)
// 注意1:公共结点是同一个结点,而非值相同的两个不同的结点。因此结点变量直接用来比较,而不是用值比较。用值比较不仅需要判断当前结点,还需要判断后面所有的结点,就把这个题搞复杂了。
// 注意2:for循环遍历链表
public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        for (ListNode h1 = pHead1; h1 != null ; h1 = h1.next) {
            for (ListNode h2 = pHead2; h2 != null ; h2 = h2.next) {
                if (h1 == h2) return h1;
            }
        }
        return null;
    }
}