zoukankan      html  css  js  c++  java
  • 36.两个链表的第一个公共节点。

    题目描述:

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

    思路分析:

      由于链表的指针只能指向一个节点,所以两个链表相交后,后面的部分完全一样。所以我们的解题思路就是先求出两个链表的长度,设置俩个指针分别指向两个链表的头部。指向较长链表的指针先走两个链表长度差步,然后两个指针同时开始走,当两个指针指向同一个节点时,这个节点就是第一个公共节点。

    代码:

    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    public class Solution {
        public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
            if(pHead1==null||pHead2==null)
                return null;
            int len1=0;
            int len2=0;
            ListNode pNode1=pHead1;
            ListNode pNode2=pHead2;
            
            while(pHead1!=null){
                len1++;
                pHead1=pHead1.next;
            }
            while(pHead2!=null){
                len2++;
                pHead2=pHead2.next;
            }
            int n=Math.abs(len1-len2);
            if(len1>len2){
                while(n>0){
                    pNode1=pNode1.next;
                    n--;
                }
            }else{
                while(n>0){
                    pNode2=pNode2.next;
                    n--;
                }
            }
            while(pNode1!=pNode2){
                pNode1=pNode1.next;
                pNode2=pNode2.next;
            }
            return pNode1;
     
        }
    }
    

  • 相关阅读:
    资源 | 辟谣平台
    数据分析常用思维
    数据分析常用工具
    杂谈 | 标准化和个性化
    杂谈 | 学以致用
    杂谈 | 工具思维的陷阱
    杂谈 | 习得性无助&习得性乐观
    spark连接mysql
    spark累加器
    java操作excel数据写入map集合并按照value排序
  • 原文地址:https://www.cnblogs.com/yjxyy/p/10841054.html
Copyright © 2011-2022 走看看