zoukankan      html  css  js  c++  java
  • N36_两个链表的第一个公共结点。

    题目描述

    输入两个链表,找出它们的第一个公共结点。
    package new_offer;
    /**
     * 输入两个链表,找出它们的第一个公共结点。
     * @author Sonya
     *思路:首先有公共节点的两个链表是Y型。先遍历两个链表得到长度
     *长的就多走长度之差步。然后遍历两个链表 得到第一个公共节点。
     */
    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    public class N36_FindFirstCommonNode {
    	public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
    		ListNode p1,p2;
    		if(pHead1==null||pHead2==null)return null;
    		p1=pHead1;p2=pHead2;
    		int i1=0;
    		int i2=0;
    		while(p1!=null) {i1++;p1=p1.next;System.out.println(i1);}//计算两个链表的长度。
    		while(p2!=null) {i2++;p2=p2.next;System.out.println(i2);}
    		int j=i1-i2;
    		if(j>0) {//1比2长。
    		p1=pHead1;p2=pHead2;
    		for(int i=0;i<j;i++) {p1=p1.next;}//多走J步
    		while(p1!=p2) {
    			p1=p1.next;
    			p2=p2.next;
    		}
    		return p1;
    		}else {
    			p1=pHead1;p2=pHead2;
    			j=0-j;
    			for(int i=0;i<j;i++) {p2=p2.next;}//多走J步
    			while(p1!=p2) {
    				p1=p1.next;
    				p2=p2.next;
    			}
    			return p1;		
    		}
    		
        }
    	public static void main(String[] args) {
    		ListNode listNode=new ListNode(1);
    		ListNode L2=new ListNode(2);
    		ListNode L3=new ListNode(3);
    		ListNode L4=new ListNode(4);
    		ListNode L5=new ListNode(5);
    		listNode.next=L2;
    		L2.next=L3;
    		L3.next=L4;
    		L4.next=L5;
    		//两个头是listnode和L3;
    		 N36_FindFirstCommonNode n36=new  N36_FindFirstCommonNode();
    	ListNode p=n36.FindFirstCommonNode(listNode, listNode);
    	System.out.println("***********");
    	System.out.println(p.val);		
    	}
    }
    

      

  • 相关阅读:
    MySQL优化
    右键菜单怎样添加“在此处打开命令提示符”选项
    MemSQL与MySQL不兼容问题总结
    Ubuntu Server 18.04 修改网路配置
    How to Install MemSQL
    Metro UI 菜单(Winform)
    Windows Server 2008 系统设置集合
    推荐个好东西swoole,php如虎添翼
    php的swoole扩展中onclose和onconnect接口不被调用的问题
    关于编程语言(转/收藏)-原文作者:韩天峰(Rango)
  • 原文地址:https://www.cnblogs.com/kexiblog/p/11157498.html
Copyright © 2011-2022 走看看