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);		
    	}
    }
    

      

  • 相关阅读:
    centos ssh远程登陆
    Vim 技巧
    php and js to facebook登陆 最佳实践
    vim 编辑器常规操作
    js 函数定义三种方式
    ORDER BY 默认升序排列
    sql = 和<>遵循的sql-92标准的设置SET ANSI_NULLS ON
    添加FB登陆时,需要curl扩展
    array(1) { [0]=> int(5) }和array(1) { [0]=> string(1) "5" }
    Android第三方推送引擎比较
  • 原文地址:https://www.cnblogs.com/kexiblog/p/11157498.html
Copyright © 2011-2022 走看看