首页 > 编程语言 >AcWing 66. 两个链表的第一个公共结点 (2012算法题)

AcWing 66. 两个链表的第一个公共结点 (2012算法题)

时间:2022-11-19 11:11:09浏览次数:46  
标签:结点 遍历 ListNode struct 链表 66 公共 2012

题目:

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

当不存在公共节点时,返回空节点。

数据范围

链表长度 [1,2000]。

保证两个链表不完全相同,即两链表的头结点不相同。

样例

 给出两个链表如下所示:
 A:        a1 → a2
                    ↘
                      c1 → c2 → c3
                    ↗            
 B:     b1 → b2 → b3
 ​
 输出第一个公共节点c1

算法思想:假设公共部分长度为c,A链非公共部分长度为a,b非公部分长度为b。假设有两个指针p1与p2,p1移动途径为a->c->b(从a开始遍历链表A,结束后再从B的链头开始遍历b。同步的p2移动途径为b->c->a(从b开始遍历链表B,结束后再从A的链头开始遍历a。可以看到两者最后的移动距离都是a+b+c,此时必然会相遇。)

 /**
  * Definition for singly-linked list.
  * struct ListNode {
  *     int val;
  *     struct ListNode *next;
  * };
  */
 struct ListNode *findFirstCommonNode(struct ListNode *headA, struct ListNode *headB) {
     struct ListNode *q,*p;
     q = headB;
     p = headA;
     while (p != q)
    {
         if (p)
        {
             p = (*p).next;
        }
         else{
             p = headB;
        }
         if (q)
        {
             q = (*q).next;
        }
         else{
             q = headA;
        }
    }
     return p;
     
 }

 




标签:结点,遍历,ListNode,struct,链表,66,公共,2012
From: https://www.cnblogs.com/sgldbhxs/p/16905670.html

相关文章

  • 代码随想录day3---LeetCode203移除链表元素&707设计链表&206反转链表
    LeetCode203移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,......
  • DSP+FPGA评估板 TI TMS320C6657 1.25GHz-DSP原理图
         TI公司的TMS320C6655/57是不定点/浮点数字信号处理器(DSP),基于KeyStone多核架构,内核速度高达1.25GHz,集成了各种包括C66x内核,存储器子系统,外设和加速器在内的各......
  • 代码随想录算法训练营Day03|203.移除链表元素、707.设计链表、206. 反转链表
    代码随想录算法训练营Day03|203.移除链表元素、707.设计链表、206.反转链表203.移除链表元素题目链接:203.移除链表元素很基本的链表操作,需要注意的是我们可以考虑在头......
  • Java实现单向循环链表
    准备节点类,节点类中只有一个int类型的数据域和一个指针:/***单链表节点*/publicclassNode{privateintdata;//数据域privateNodenext;//指向下一个......
  • 基础数据结构 -链表
    链表描述:内存中内部的存储方式,通常情况下可以认为是多个节点存储一串的的结构链表存储结构数据域Datafield指针域pointerfield......
  • 114. 二叉树展开为链表 -----
    给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链......
  • 2012年总结
    时间过的好快,春节马上来临了。本来计划在元月就总结下2012年,结果来了个着急的项目,推迟了总结。 2012本来是世界末日的,也是自己的本命年。 虽然自己时时小心翼翼,但总有些磕......
  • 十六、二叉树(二叉链表)遍历算法
    一、二叉树的遍历遍历二叉树(Traversingbinarytree)是指按某条搜索路径巡访树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。先序遍历(根左右)中序遍历......
  • LinkedList双向链表
           ......
  • windows 2012 打补丁升级后不能启动处理
    如果可以进入WinRE这个修复的高级选项,选择安全模式,是否可以进入,卸载最近安装的补丁,再重启看一下。如果无法进入安全模式的话,那么选择cmd模式,使用下方命令。这通常会回退pe......