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

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

  hot3.png

两个长度不一定相等的链表,找出其第一个公共节点。

/*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;    }*/    //第二种方法    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {        int len1=getListLength(pHead1);        int len2=getListLength(pHead2);        int dis=0;        ListNode longHead=null,shortHead=null;        //先分辨链表的长短        if(len1>len2){            dis=len1-len2;            longHead=pHead1;            shortHead=pHead2;        }else{            dis=len2-len1;            longHead=pHead2;            shortHead=pHead1;        }        //先检测较长链表比短链表多出来的那些节点        while(dis>0){            if(longHead==shortHead){                return longHead;            }            dis--;            longHead=longHead.next;        }        //至此两个链表将会同时到达末尾        while(longHead!=null){            if(longHead==shortHead){                return longHead;            }            longHead=longHead.next;            shortHead=shortHead.next;        }        return longHead;       	    }    //计算列表长度    public int getListLength(ListNode phead){        ListNode head=phead;        int count=0;        while(head!=null){            count++;            head=head.next;        }        return count;    }}

 

转载于:https://my.oschina.net/eqshen/blog/849371

你可能感兴趣的文章
真正超简单解决App启动时白屏问题
查看>>
分布式b2b b2c o2o电子商务云平台
查看>>
TCP IP原理浅析
查看>>
浅析前端开发中的 MVC/MVP/MVVM 模式
查看>>
坚持技术创新,时速云 DevOps 平台加速企业数字化蝶变
查看>>
YAML、YML在线编辑器(格式化校验)解析工具-toolfk.com
查看>>
编译安装httpd 2.4
查看>>
驰骋工作流-表单引擎- ccform介绍
查看>>
解决arch下挂载ntfs格式硬盘
查看>>
一道算法题:在超市用现金结账时,如何付钱以及收银员如何找钱才能使钱的张数最少?...
查看>>
C++运算优先级
查看>>
安装project server 2013 遇到的坑!!!
查看>>
监控服务器Zabbix之一 概述及安装
查看>>
在(Docker里的)Jenkins里运行Docker实践
查看>>
Linux中安装MongoDB(2015-11-03 00:51:24)
查看>>
担忧与害怕
查看>>
Virtualbox with UUID already exists
查看>>
设计模式:简单工厂、工厂方法、抽象工厂之区别和小结
查看>>
开篇:为何研究 CyanogenMod (Nexus 4)
查看>>
一步一步学习iOS 5编程(第三版)-PDF中文版-正式发布!
查看>>