题解 | #两个链表的第一个公共结点#

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

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

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        int count1 = countList(pHead1);
        int count2 = countList(pHead2);
        int count = Math.abs(count1-count2);
        ListNode node1 = count1>=count2?pHead1:pHead2;
        ListNode node2 = count1>=count2?pHead2:pHead1;
        for(int i=0;i<count;i++){
            node1 = node1.next;
        }
        while(node1!=null && node2!=null){
            if(node1!=node2){
                node1 = node1.next;
                node2 = node2.next;
            }else 
                return node1;
        }
        
        return null;

    }
    public int countList(ListNode head){
        ListNode node = head;
        int count = 0;
        while(node!=null){
            count++;
            node = node.next;
        }
        return count;
    }
}

全部评论

相关推荐

11-07 16:07
深圳大学 运营
前端飞升:学长,阿里不是卡双非吗,我深也能去吗
点赞 评论 收藏
分享
回家当保安:复旦✌🏻,佬你的简历感觉挺好的,寒假日常hc比较少。佬可以过完年之后再试试,日常实习hc比较充足
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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