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

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

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

import java.util.*;
/*
public 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;
        }
        ListNode pHead1Temp = pHead1;
        ListNode pHead2Temp = pHead2;
        List<ListNode> list1 = new ArrayList<>();
        List<ListNode> list2 = new ArrayList<>();
        int count1 = 0;
        int count2 = 0;
        while (pHead1Temp != null) {
            count1 += 1;
            list1.add(pHead1Temp);
            pHead1Temp = pHead1Temp.next;
        }
        while (pHead2Temp != null) {
            count2 += 1;
            list2.add(pHead2Temp);
            pHead2Temp = pHead2Temp.next;
        }
        int n = 0;
        if (count1 > count2) {
            n = list1.size()-1;
            for (int i = list2.size() - 1; i >= 0; i--) {
                if (list2.get(i).val != list1.get(n).val) {
                    return list1.get(n).next;
                }
                n -= 1;
                if (i == 0) {
                    return list2.get(0);
                }
            }
        } else {
            n = list2.size()-1;
            for (int i = list1.size() - 1; i >= 0; i--) {
                if (list1.get(i).val != list2.get(n).val) {
                    return list2.get(n).next;
                }
                n -= 1;
                if (i == 0) {
                    return list1.get(0);
                }
            }
        }

        return null;
    }
}

全部评论

相关推荐

嵌入式的小白:面试少的,说明你的投递的岗位和简历匹配度不高,技术这个东西很杂的,你这种情况,建议 1.看看嵌入式招聘的岗位需求,会有不同大方向的,比如MCU,RTOS的,或者linux上驱动的,或者应用层的,这都是简单分类,但对技术要求差异很大的 2.结合你的经验,看能和哪类匹配上,就找对应类别的 3.简历和招聘岗位需求对着看下,看人家需要啥,你会啥,匹配度高才有会高概率有面试的
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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