题解 | #两个链表的第一个公共结点【朴素解法,双层循环】#

两个链表的第一个公共结点

http://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

/*
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;
    }
}
全部评论

相关推荐

已注销:bro不如吃顿疯狂星期四
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务