首页 > 其他 > 详细

剑指 Offer 52. 两个链表的第一个公共节点 力扣(简单) 链表联系题

时间:2021-07-21 23:14:53      阅读:45      评论:0      收藏:0      [点我收藏+]

题目描述:

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

如下面的两个链表:

 技术分享图片

 

 在节点 c1 开始相交。

题源:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/

代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
      ListNode* t=headA;
      int la=0;
      while(t!=NULL) 
      {
          la++;
          t=t->next;
      }
      int lb=0;
      t=headB;
      while(t!=NULL)
      {
          lb++;
          t=t->next;
      }
      if(la<lb) {swap(headA,headB); swap(la,lb);}
      for(int i=0;i<la-lb;i++)  headA=headA->next;
      while(headA!=NULL)
      {
          if (headA==headB)  break;
          headA=headA->next;
          headB=headB->next;
      }
      return headA;
    }
};

剑指 Offer 52. 两个链表的第一个公共节点 力扣(简单) 链表联系题

原文:https://www.cnblogs.com/stepping/p/15041187.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!