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

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

//方案一

public class Solution {

public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {

   ListNode temp1=pHead1;
   ListNode temp2=pHead2;
    
    if(pHead1==null||pHead2==null)
        return null;
   
    
   while(temp1!=null||temp2!=null){
       if(temp1==null)
           temp1=pHead1;
       if(temp2==null)
           temp2=pHead2;
       
       if(temp1==temp2)
           return temp1;
       
       temp1=temp1.next;
       temp2=temp2.next;
   } 
   
   //这个地方返回空的原因:是说没有公共节点,都最后一个节点都是空
   
 return null;
}

}

//方案二:

public class Solution {

public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {

   ListNode temp1=pHead1;
   ListNode temp2=pHead2;
    
    while(temp1!=temp2)
    {
        temp1=temp1==null?pHead2:temp1.next;
        temp2=temp2==null?pHead1:temp2.next;
    }
    
    return temp1;
}

}

方案二更好,循环的次数更少

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看