博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个单链表的第一个公共节点
阅读量:4091 次
发布时间:2019-05-25

本文共 692 字,大约阅读时间需要 2 分钟。

 

一、问题描述

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

 

二、代码实现

由于单链表中节点只能有一个next指针,所以两个单链表相交,只能是Y型的形状,两者的尾部重叠,第一个重叠的节点就是我们要找的第一个公共节点。

假设链表1的长度为a + c,链表2的长度为b + c,c是两者的共同部分的长度。现在将两个链表按照不同顺序拼接,得到两个长度相同的新链表:a+c+b+c、b+c+a+c,然后从头依次遍历,则两个新链表第一次相同的节点就是第一个共同节点。

/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/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;    }    }

 

转载地址:http://sfnii.baihongyu.com/

你可能感兴趣的文章
Vue 3.0 公开代码之后的一些争论
查看>>
紧急通告!知名办公软件 Teamviewer 被黑,请立即采取应对措施!
查看>>
推荐一位 GitHub 57k+ Star 项目作者的公众号
查看>>
UC 伯克利最新深度强化学习课程上线(附 B 站视频)!
查看>>
VS Code 为什么能这么牛?
查看>>
很强!GitHub 中文项目排行榜新鲜出炉!
查看>>
大学辍学、自学编程,GitHub 创始人是怎么号召 2800 万程序员的?
查看>>
为什么我抛弃了 Ubuntu?
查看>>
GitHub 标星 2.7w+!超全大厂面试笔记整理!
查看>>
牛逼!这款神器能在浏览器跑 VS Code,让你随时随地写代码!
查看>>
推荐一位 10w+ 粉丝的 Python 工程师
查看>>
如何从零开始,自学成为一名数据科学家?
查看>>
前 Facebook 工程师:不要再用你认为正确的方式学算法了!
查看>>
英伟达小姐姐开源 Python 隐藏技巧,上了 GitHub 热榜!
查看>>
面经 | 为了拿到 Google offer,我都付出了哪些努力?
查看>>
阿里千万级并发课程开课了,达不到 25.6 万年薪全额退款
查看>>
美观实用!Star 过万,用 Python 做交互式图形的这款工具火了!
查看>>
阿里面试 100% 会问到的 JVM,我们还有必要学吗?
查看>>
VS Code 1.40 发布!可自行搭建 Web 版 VS Code!
查看>>
干了 7 年后端后,我成功转型并拿到了大厂 AI 算法 offer
查看>>