📌
SRE学习知识点
  • Initial page
  • 系统及网络编程
    • OSI七层和TCP/IP四层
    • TCP拆链的4次握手
    • select、poll和epoll的区别
    • 进程、线程、协程的区别
  • 系统命令相关
    • Top命令
    • AWK文本操作
  • SRE业务
    • Redis
    • CPU高排查
    • SLA SLO SLI
  • 算法类
    • 用数组和链表实现HashMap
    • 2个单向链表在某个地方相交,问如何求出第一个相交点
  • Mysql相关
    • InnoDB 存储引擎性能参数
Powered by GitBook
On this page

Was this helpful?

  1. 算法类

2个单向链表在某个地方相交,问如何求出第一个相交点

  1. 如果两个链表相交,则从相交点开始,后面的节点都相同,即最后一个节点肯定相同;

  2. 从头到尾遍历两个链表,并记录链表长度,当二者的尾节点不同,则二者肯定不相交;

  3. 尾节点相同,如果A长为LA,B为LB,如果LA>LB,则A前LA-LB个先跳过,

然后二者一起向后遍历,直到遇到相同的节点;LA<LB类似处理 因为第一个公共节点距起始节点的距离start_a满足: LA - start_a == LB - start_b。

答案2:

从以下几个步骤分析:

判断一个单链表是否存在环路,如果无环,返回null,反之,返回入环节点。

如果两个单链表均无环,进入相应的子程序,如果无相交,返回null,反之,返回第一个相交节点。

如果一个有环,一个无环,进入相应的子程序,如果无相交,返回null,反之,返回第一个相交节点。

如果两个单链表均有环,进入相应的子程序,如果无相交,返回null,反之,返回第一个相交节点。

Previous用数组和链表实现HashMapNextInnoDB 存储引擎性能参数

Last updated 4 years ago

Was this helpful?