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

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

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

首先计算出两个链表的长度,求长度之差,先让长度长的走差值个步数,然后前后两个指针一块向前走,到两个指针指向的值相同。


public class Solution {
    public int lengthOfListnode(ListNode head){
        if (head==null) return 0;
        int length = 0;
        while(head!=null){
            length++;
            head=head.next;
        }
        return length;
    }
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        int length_1 = lengthOfListnode(pHead1);
        int length_2 = lengthOfListnode(pHead2);
        if(length_2>length_1){
            ListNode temp = pHead1;
            pHead1=pHead2;
            pHead2=temp;
        }
        int minus = Math.abs(length_1-length_2);
        ListNode fast=pHead1;
        ListNode slow=pHead2;
        for (int i=0;i<minus;i++){
            fast = fast.next;
        }
        while(fast!=null&&slow!=null){
            if(fast.val==slow.val){
                return fast;
            }
            fast = fast.next;
            slow = slow.next;
        }
        return null;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:19
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
不敢追175女神:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务