zoukankan      html  css  js  c++  java
  • 剑指offer——两个链表的公共节点

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

    解题思路:

    找出2个链表的长度,然后让长的先走两个链表的长度差,然后再一起走(因为2个链表用公共的尾部)
     
     1 /*
     2 public class ListNode {
     3     int val;
     4     ListNode next = null;
     5 
     6     ListNode(int val) {
     7         this.val = val;
     8     }
     9 }*/
    10 public class Solution {
    11     public ListNode FindFirstCommonNode(ListNode phead1, ListNode phead2) {
    12         
    13         int head1_length = getlength(phead1);
    14         int head2_length = getlength(phead2);
    15         
    16         if(head1_length>=head2_length)
    17         {
    18             int chazhi = head1_length-head2_length;
    19             for(int i=0;i<chazhi;i++)
    20             {
    21                 phead1 = phead1.next;
    22             }
    23             
    24         }
    25         else if(head1_length<head2_length)
    26         {
    27             int chazhi = head2_length-head1_length;
    28             for(int i=0;i<chazhi;i++)
    29             {
    30                 phead2 = phead2.next;
    31             }
    32             
    33         }
    34         while(phead1!=phead2)
    35         {
    36             phead1 = phead1.next;
    37             phead2 = phead2.next;
    38         }
    39         
    40         return phead1;
    41         
    42  
    43     }
    44     
    45     public static int getlength(ListNode l1)
    46     {
    47         int length=0;
    48         
    49         while(l1!=null)
    50         {
    51             length++;
    52             l1=l1.next;
    53         }
    54         return length;
    55     }
    56 }
  • 相关阅读:
    第一次热身赛和正式比赛感想
    简明解释算法中的大O符号
    poj 3045
    poj 3104
    poj 3273
    poj 3258
    poj 2456
    二分法小结
    Poj 2718 Smallest Difference
    GCJ——Crazy Rows (2009 Round 2 A)
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10872679.html
Copyright © 2011-2022 走看看