摘要: 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度。 列数 n 应当总是奇数。 根节点的值(以字符串格式给出)应当放在可放置的第一行正中间。根节点所在的行与列会将剩余空间划分为两部分(左下部分和右下部分)。你应该将左子树输出在左下部分,右子树输出在右下 阅读全文
posted @ 2021-04-22 17:17 kpwong 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 /** * Definition for a binary tree node. * public class TreeNode { * int val; 阅读全文
posted @ 2021-04-22 16:41 kpwong 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 你有一棵二叉树,这棵二叉树有个小问题,其中有且只有一个无效节点,它的右子节点错误地指向了与其在同一层且在其右侧的一个其他节点。 给定一棵这样的问题二叉树的根节点 root ,将该无效节点及其所有子节点移除(除被错误指向的节点外),然后返回新二叉树的根结点。 自定义测试用例: 测试用例的输入由三行组成 阅读全文
posted @ 2021-04-22 16:33 kpwong 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。 返回移除了所有不包含 1 的子树的原二叉树。 ( 节点 X 的子树为 X 本身,以及所有 X 的后代。) /** * Definition for a binary tree node. * public class Tre 阅读全文
posted @ 2021-04-22 16:27 kpwong 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root = [1,2,2,3,3, 阅读全文
posted @ 2021-04-22 15:59 kpwong 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例:给定如下二叉树,以及目标和 target = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [ [5,4,11, 阅读全文
posted @ 2021-04-22 15:27 kpwong 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1: 输入: [1,6,3,2,5] 输出: false 示例 2: 输入: [1 阅读全文
posted @ 2021-04-22 14:43 kpwong 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 给定一棵二叉搜索树,请找出其中第k大的节点。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 示例 2: 输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 6 / \ 2 4 / 阅读全文
posted @ 2021-04-22 14:22 kpwong 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] /** * Definition for 阅读全文
posted @ 2021-04-22 14:07 kpwong 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [ 阅读全文
posted @ 2021-04-22 14:04 kpwong 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向 为了让您更好地理解问题,以下面的二叉搜索树为例 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点, 阅读全文
posted @ 2021-04-22 13:51 kpwong 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 一、前序遍历 ArrayList<Integer> res = new ArrayList(); public void preOrderTraverse1(TreeNode root) { if (root != null) { // System.out.print(root.val+" "); 阅读全文
posted @ 2021-04-22 13:11 kpwong 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 任务调度优化是计算机性能优化的关键任务之一。在任务众多时,不同的调度策略可能会得到不同的总体执行时间,因此寻求一个最优的调度方案是非常有必要的。 通常任务之间是存在依赖关系的,即对于某个任务,你需要先完成他的前导任务(如果非空),才能开始执行该任务。我们保证任务的依赖关系是一棵二叉树,其中 root 阅读全文
posted @ 2021-04-22 12:02 kpwong 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 请完成一个函数,输入一个二叉树,该函数输出它的镜像 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] class Sol 阅读全文
posted @ 2021-04-22 11:24 kpwong 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 阅读全文
posted @ 2021-04-22 11:16 kpwong 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 请实现两个函数,分别用来序列化和反序列化二叉树。 示例: 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5 序列化为 "[1,2,3,null,null,4,5]" 通常使用的前序、中序、后序、层序遍历记录的二叉树的信息不完整,即唯一的输出序列可能对应着多种二叉树可能性。题目要求的 序列化 阅读全文
posted @ 2021-04-22 10:30 kpwong 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 方法一:后序遍历(DFS)树的后序 阅读全文
posted @ 2021-04-22 09:49 kpwong 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 阅读全文
posted @ 2021-04-22 09:27 kpwong 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 示例 2: 给定二叉树 [1,2,2, 阅读全文
posted @ 2021-04-22 09:17 kpwong 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 小扣有一个根结点为 root 的二叉树模型,初始所有结点均为白色,可以用蓝色染料给模型结点染色,模型的每个结点有一个 val 价值。小扣出于美观考虑,希望最后二叉树上每个蓝色相连部分的结点个数不能超过 k 个,求所有染成蓝色的结点价值总和最大是多少? 示例 1: 输入:root = [5,2,3,4 阅读全文
posted @ 2021-04-22 09:09 kpwong 阅读(140) 评论(0) 推荐(0) 编辑