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

简介: 两个链表的第一个公共结点

今天为大家带来一道题目:

这个题目先来看看我自己写的错误版本


public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        ListNode tmp1=pHead1;
        ListNode tmp2=pHead2;
        while(pHead1!=null&&pHead2!=null){
            ListNode cur=tmp1;
            if(tmp1.val!=tmp2.val){
                tmp1=tmp1.next;
                tmp2=tmp2.next;
            }
            return cur;
        }
        if(pHead1!=null){
            return pHead1;
        }
        if(pHead2!=null){
            return pHead2;
        }
    }
}

这是错误的写法

来看正确的写法


public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        ListNode l1 = pHead1, l2 = pHead2;
        while(l1 != l2){
            l1 = (l1==null)?pHead2:l1.next;
            l2 = (l2==null)?pHead1:l2.next;
        }
        return l1;
    }
}


遍历了链表1和链表2,一旦相遇就退出

相关文章
|
21天前
19 删除链表的倒数第 N 个结点
19 删除链表的倒数第 N 个结点
|
21天前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
21天前
|
算法 安全 数据处理
LeetCode刷题---707. 设计链表(双向链表-带头尾双结点)
LeetCode刷题---707. 设计链表(双向链表-带头尾双结点)
|
8天前
题目----力扣--链表的中间结点
题目----力扣--链表的中间结点
6 0
|
8天前
查找两个链表的第一个公共结点
查找两个链表的第一个公共结点
16 0
|
9天前
|
索引
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
15 0
|
13天前
【一刷《剑指Offer》】面试题 15:链表中倒数第 k 个结点
【一刷《剑指Offer》】面试题 15:链表中倒数第 k 个结点
|
13天前
|
机器学习/深度学习
【一刷《剑指Offer》】面试题 13:在 O(1) 时间删除链表结点
【一刷《剑指Offer》】面试题 13:在 O(1) 时间删除链表结点
|
15天前
19. 删除链表的倒数第 N 个结点
19. 删除链表的倒数第 N 个结点
20 1
|
21天前
19. 删除链表的倒数第 N 个结点
19. 删除链表的倒数第 N 个结点