文章 2023-06-17 来自:开发者社区

剑指offer 54. 两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。当不存在公共节点时,返回空节点。样例给出两个链表如下所示: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3 输出第一个公共节点c1 方法一:双指针 O(...

剑指offer 54. 两个链表的第一个公共结点
文章 2023-06-17 来自:开发者社区

剑指offer_链表---删除链表中重复的结点

##题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5##解题思路1, 设置firstNode节点,防止1–1—1–1—1这种状况出现null指针2,遇到连续的相同值,让pre指向最后一个相同值的下一个。3,非相同值,指....

文章 2023-06-17 来自:开发者社区

剑指offer_链表---链表中环的入口结点

##题目描述一个链表中包含环,请找出该链表的环的入口结点。##解题思路1,使用快慢指针找到碰撞点2,两个同速指针分别从头节点和碰撞点出发,相遇的地方就是入口节点##代码实现/** * */ package 链表; /** * <p> * Title:EntryNodeOfLoop * </p> * <p> * Description: * &...

文章 2023-06-17 来自:开发者社区

剑指offer_链表---复杂链表的复制

##题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)##解题思路第一步,原样复制,每一个复制的节点跟在原节点后边第二步,确定复制节点的任意指向第三步,拆分长链表为原链表和复制链表##代码实现/** * */ packa...

文章 2023-06-17 来自:开发者社区

剑指offer_链表---合并两个排好序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路1,如果list1和list2都不为空,那么比较大小插入新链表2,其中一个为空以后,把剩下的一个直接挂到已排序列表后边代码实现/** * */ package 链表; /** * <p> * Title:Merge * </p> * <p>...

文章 2023-06-17 来自:开发者社区

剑指offer_链表---反转链表

题目描述输入一个链表,反转链表后,输出链表的所有元素。解题思路用一个临时指针存储原本应该的下一位代码实现/** * */ package 链表; /** * <p> * Title:ReverseList * </p> * <p> * Description: * </p> * * @author 田茂林 * @data ...

文章 2023-06-17 来自:开发者社区

剑指offer_链表---链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路1,硬解,先求出链表总长度,然后倒数第k个就是正数第count-k+1个2,软解,双指针,两个同时开始走,p指针先跑,并且记录节点数,当p指针跑了k-1个节点后,pre指针开始跑, 当p指针跑到最后时,pre所指指针就是倒数第k个节点,也就是说两个指针之间相差k-1,一个到最后,另一个刚好到k代码实现/** * */ package...

文章 2023-06-17 来自:开发者社区

剑指offer_链表---从尾到头打印链表

题目描述输入一个链表,从尾到头打印链表每个节点的值。解题思路使用递归的方式,先向后走再添加值代码实现/** * */ package 链表; import java.util.ArrayList; /** * <p> * Title:PrintListFromTailToHead * </p> * <p> * Description: * &...

文章 2023-06-17 来自:开发者社区

剑指offer_二叉树---二叉搜索树与双向链表

##题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。##解题思路1,有序且为二叉搜索树,则只要使用二叉搜索树的中序遍历即可2,二叉搜索树的左子树链表最右端链接根,根链接右子树链表最左端3,递归链接即可##代码/** * */ package 二叉树; /** * <p> * Title:输入一棵二叉搜...

文章 2023-06-17 来自:开发者社区

剑指offer 37. 二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。注意:需要返回双向链表最左侧的节点。例如,输入下图中左边的二叉搜索树,则输出右边的排序双向链表。数据范围树中节点数量 [0,500]。方法一:dfs O(n)我们可以利用中序遍历的性质,设置一个 prev 指针,在遍历过程中,改变 prev 和 root 指针指向从而得到最终....

剑指offer 37. 二叉搜索树与双向链表

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

数据库

分享数据库前沿,解构实战干货,推动数据库技术变革

+关注