
剑指Offer 2nd
巨輪
How many ten years are in left time?
展开
-
《剑指Offer》52:两个链表的第一个公共节点
题目 输入两个链表,找出它们的第一个公共节点。 public static class ListNode{ public int val; public ListNode next; public ListNode(int val) { this.val = val; } } 分析 首先遍历两链表的长度。在第二次遍历的时候,在较长的链表上先走若干步,步数为两链表之差的绝对值,接着同时在两个链表遍历,找到的第一个相同的节点就是它们的第一个公共节点。 放码 public class FindThe原创 2020-10-04 11:18:46 · 185 阅读 · 0 评论 -
《剑指Offer》36:二叉搜索树与双向链表
题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。比如,输入下图中的二叉搜索树,输出转换之后的排序双向链表。 二叉树节点的定义如下: public static class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x) { val = x; } } 分析 众所周知,中序遍历二叉搜索树会原创 2020-09-20 10:17:54 · 228 阅读 · 0 评论 -
《剑指Offer》23:链表中环的入口节点
题目 若一个链表中包含环,如何找出的入口结点?如下图链表中,环的入口节点的节点3。 分析 一快(移两节点)一慢(移一节点)两指针判断链表是否存在环。 算出环有几个节点(上一步的两指针可知是在环中,让慢指针停止遍历,让快指针改为一节点一节点然后两指针一动一静的计算出环有多少个节点)。 重置两指针指向链头,一指针移动2. 步骤得出n,然后两指针一起移动。当两指针相遇,此时它们指向的环的入口结点 放码 import com.lun.util.SinglyLinkedList.ListNode; publi原创 2020-09-25 00:21:52 · 147 阅读 · 0 评论