小米笔试题--两个链表的第一个公共结点

小米笔试题–两个链表的第一个公共结点

题目描述

输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f3idLJ7o-1600157501963)(C:\Users\Carlos\Desktop\微信图片_20200915160755.jpg)]

我这边使用暴力法,逐一判断

代码如下:

package cn.lbl.face.link;
/*
输入两个链表,找出它们的第一个公共结点。
 */
public class 两个链表的第一个公共结点 {
    
    
    private static ListNode temp;
    public static ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
    
    
        temp= pHead2;
        while (pHead1!=null){
    
    
            pHead2=temp;
            while (pHead2!=null){
    
    
                if (pHead1 == pHead2) {
    
    
                    return pHead1;
                }else {
    
    
                    pHead2=pHead2.next;
                    continue;
                }
            }
            pHead1=pHead1.next;
        }
        return null;
    }

    public static void main(String[] args) {
    
    
        ListNode listNode1 = new ListNode(1);
        ListNode listNode2 = new ListNode(2);
        ListNode commlistNode = new ListNode(3);
        ListNode newlistNode1 = new ListNode(1);
        ListNode newlistNode2 = new ListNode(2);

        listNode1.next=listNode2;
        listNode2.next=commlistNode;

        newlistNode1.next=newlistNode2;
        newlistNode2.next=commlistNode;
        FindFirstCommonNode(listNode1,newlistNode1);
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37924905/article/details/108601941