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

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

题目:输入两个链表,找出它们的第一个公共结点。

思路:定义两个指针,一起走,如果其中一个走到尾部,则该指针指向另一个链表头部。如果有公共节点,这这两个指针一定会相遇

因为假如长度不一样的话,其中p1先走完,这时p2刚好走完了p1的长度,也就是剩下的长度为两个链表的差

此时p1指向p2的链表,当p2走完时,p1刚好走完了两个链表的差,此时p2指向了之前p1指向的链表,这个时候两个链表同时走,一定会相遇的

/*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 p1=pHead1;		 ListNode p2=pHead2;		 while(p1!=p2){			 p1=(p1==null?pHead2:p1.next);			 p2=(p2==null?pHead1:p2.next);		 }		 return p1;    }}

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

你可能感兴趣的文章
Drools Workbench 7.5.0.Final安装运行
查看>>
Docker快速部署Redis
查看>>
Spring boot shiro session cache ecache redis 共存配置
查看>>
一看就懂的设计模式--设计模式分类
查看>>
一看就懂的设计模式--模板方法
查看>>
一看就懂的设计模式--享元模式
查看>>
一看就懂的设计模式--策略模式
查看>>
spring Cloud 组建图
查看>>
腾讯云
查看>>
什么服务器比较好?
查看>>
阿里云+腾讯云采购季优惠攻略
查看>>
PCB设计容易出错的地方都有哪些?
查看>>
挠性电路板和刚性电路板的区别,以及柔性电路板焊接方法操作步骤
查看>>
如何做好一块PCB板,大神从以下几个方面做了论述
查看>>
学习笔记1之static
查看>>
学习笔记2之继承
查看>>
循环链表实现增、删、改、查等功能
查看>>
Android实现超链接和跑马灯
查看>>
实现二叉树先序、中序、后序遍历
查看>>
Socket客户端服务器连接
查看>>