博客
关于我
王道数据结构2.2.3——8、找处两个单链表的公共结点
阅读量:634 次
发布时间:2019-03-14

本文共 877 字,大约阅读时间需要 2 分钟。

思路

在处理双链表时,如果两个链表有公共节点,这意味着它们从某个公共节点开始,后续所有节点一模一样。这种结构类似于“Y”型,因此我们可以通过以下步骤找到它们的公共节点:

  • 计算链表长度:首先,我们需要计算两个链表的长度。
  • 处理长度差异:找到较长链表和较短链表之间的长度差值,并在较长链表中移动到该差值位置。
  • 同时遍历链表:从两个链表的当前位置开始,同时遍历,直到找到第一个相同节点作为公共节点。
  • 代码

    LinkList/pubNode(LinkList L, LinkList Q) {    int lenL = 0, lenQ = 0;    LNode *p = L->next, *q = Q->next;    // 计算链表 L 的长度    while (p != null) {        p = p->next;        lenL++;    }    // 计算链表 Q 的长度    while (q != null) {        q = q->next;        lenQ++;    }    // 找到长度较长的链表    if (lenL > lenQ) {        while (lenL - lenQ-- > 0)            p = p->next;    } else if (lenQ > lenL) {        while (lenQ - lenL-- > 0)            q = q->next;    }    // 同时遍历,直到找到公共节点    while (p->data != q->data) {        p = p->next;        q = q->next;    }    return p;}

    在上面的代码中,首先遍历两个链表计算它们的长度,然后根据长度差异调整指针位置。最后,同时遍历两个链表,直到找到相同节点作为公共节点。这种方法确保了在存在公共节点的情况下,能够高效地找到它们的起始节点,从而实现对两个链表的合并。

    转载地址:http://vpaoz.baihongyu.com/

    你可能感兴趣的文章
    PyTorch 微调终极指南:第 2 部分 — 提高模型准确性
    查看>>
    pure css做的手机页面
    查看>>
    PureMVC--一款多平台MVC框架
    查看>>
    pure框架
    查看>>
    putty、Xshell、远程连接、密钥登录
    查看>>
    Putty建立SSH隧道代理上网
    查看>>
    putty提示Network error:Software caused connection abort
    查看>>
    PyTorch 微调终极指南:第 1 部分 — 预训练模型及其配置
    查看>>
    PVE Win平台虚拟机下如何安装恢复自定义备份Win系统镜像ISO文件(已成功实现)
    查看>>
    PVS 6.1 Configuring Services Failed
    查看>>
    pv操作二
    查看>>
    PWA 入门指南:理解与构建现代化 Web 应用
    查看>>
    PWD的编译及调试
    查看>>
    PWM(Pulse Width Modulation)控制-ChatGPT4o作答
    查看>>
    PWM(Pulse Width Modulation,脉冲宽度调制)是什么
    查看>>
    pwnable bof
    查看>>
    PXC / Galera Cluster集群概述及原理分析
    查看>>
    PXC搭建MySQL高可用集群
    查看>>
    PXE + Kickstart 服务器批量安装Linux系统
    查看>>
    PXE+HTTP+TFTP+Kickstart实现无人值守部署centos6.10
    查看>>