剑指offer
_RailGun_
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2,8,0,4,7,9,null,null,3,5]原创 2021-03-31 22:03:59 · 55 阅读 · 0 评论 -
剑指 Offer 68 - II. 二叉树的最近公共祖先
剑指 Offer 68 - II. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 示例 1: 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p =原创 2021-03-31 22:01:30 · 50 阅读 · 0 评论 -
【剑指offer】重建二叉树
题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序{4,7,2,1,5,3,8,6},则重建二叉树并返回。 示例1 输入 [1,2,3,4,5,6,7],[3,2,4,1,6,5,7] 返回值 {1,2,5,3,4,6,7} 解题思路: 因为是树的结构,一般都是用递归来实现。 例如前序遍历序列{1,2,4,7,3,5,6,8}中序遍历序{4,7,2,1,5,3原创 2021-03-10 23:12:44 · 53 阅读 · 0 评论 -
【剑指offer】链表中倒数第二个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 示例1 输入 {1,2,3,4,5},1 返回值 {5} 解题思路 在链表中倒数的+顺数的长度等于链表总长度,所以可以设置两个指针slow和fast,一个先走k步,剩下的到链表的末尾要走的步数就是倒数第k个节点,需要从头开始走的步数。 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNod原创 2021-03-08 22:44:14 · 389 阅读 · 0 评论 -
【剑指offer】反转链表(阿里面试)
题目描述 输入一个链表,反转链表后,输出新链表的表头。 示例1 输入 {1,2,3} 返回值 {3,2,1} 解法 以3个节点为例: 用pre记录当前节点的前一个节点 用next记录当前节点的后一个节点 定义一个新的节点cur赋值为head 当前节点a不为空,进入循环,先记录a的下一个节点位置next = b;再让a的指针指向pre 移动pre和cur的位置,正因为刚才记录了下一个节点的位置,所以该链表没有断,我们让cur走向b的位置。 当前节点为b不为空,先记录下一个节点的位置,让b指向pr原创 2021-03-08 22:38:07 · 112 阅读 · 0 评论 -
【剑指offer】数字在升序数组中出现的次数
题目描述 统计一个数字在升序数组中出现的次数。 示例1 输入 [1,2,3,3,3,3,4,5],3 返回值 4 解法: public class Solution { public int GetNumberOfK(int [] array , int k) { int left = 0; int right = array.length - 1; int mid = 0; int count = 0; while原创 2021-03-08 22:32:29 · 69 阅读 · 0 评论 -
【剑指offer】和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 返回值描述: 输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 输入 [1,2,4,7,11,15],15 返回值 [4,11] import java.util.ArrayList; public class Solution { public ArrayList<Integer> FindNumbersW原创 2021-03-08 22:27:08 · 47 阅读 · 0 评论