摘要: /*给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。 解题思路: 从根节点开始, 阅读全文
posted @ 2022-03-11 09:49 随遇而安== 阅读(20) 评论(0) 推荐(0) 编辑
摘要: /*给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 解题思路 标签:DFS 终止条件、返回值和递归过程: 当前节点 root 为空时,说明此处树的高度为 0,0 也是最小值 当前节点 root 的左子树和右子树都为空时 阅读全文
posted @ 2022-03-11 09:47 随遇而安== 阅读(26) 评论(0) 推荐(0) 编辑
摘要: /*给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 从底至顶(提前阻断) 此方法为本题的最优解法,但“从底至顶”的思路不易第一时间想到。 思路是对二叉树做先序遍历,从底至顶返回子树最大高度,若判定某 阅读全文
posted @ 2022-03-11 09:45 随遇而安== 阅读(57) 评论(0) 推荐(0) 编辑
摘要: /*给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 分析:BST的中序遍历是升序的,因此本题等同于根据中序遍历的序列恢复二叉搜索树。因此我们可以以升序序列 阅读全文
posted @ 2022-03-11 09:42 随遇而安== 阅读(28) 评论(0) 推荐(0) 编辑
摘要: /*给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 解题思路 标签:DFS 找出终止条件:当前节点为空 找出返回值:节点为空时说明高度为 0,所以返回 0;节点不为空时则分别求左右子树的高度的最大值,同时加1表示当前 阅读全文
posted @ 2022-03-11 09:40 随遇而安== 阅读(18) 评论(0) 推荐(0) 编辑
摘要: /*给你一个二叉树的根节点 root , 检查它是否轴对称。 解题思路 递归结束条件: 都为空指针则返回 true 只有一个为空则返回 false 递归过程: 判断两个指针当前节点值是否相等 判断 A 的右子树与 B 的左子树是否对称 判断 A 的左子树与 B 的右子树是否对称 短路: 在递归判断过 阅读全文
posted @ 2022-03-11 09:39 随遇而安== 阅读(17) 评论(0) 推荐(0) 编辑
摘要: /*给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 解题思路 标签:深度优先遍历 终止条件与返回值: 当两棵树的当前节点都为 null 时返回 true 当其中一个为 null 另一个不为 null 时返 阅读全文
posted @ 2022-03-11 09:36 随遇而安== 阅读(20) 评论(0) 推荐(0) 编辑
摘要: /*给定一个二叉树的根节点 root ,返回它的 中序 遍历。 思路: 二叉树的遍历 前序: 根 -> 左 -> 右 中序: 左 -> 根 -> 右 后序: 左 -> 右 -> 根 /** * Definition for a binary tree node. * public class Tre 阅读全文
posted @ 2022-03-11 09:34 随遇而安== 阅读(27) 评论(0) 推荐(0) 编辑
摘要: /*给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 num 阅读全文
posted @ 2022-03-11 09:32 随遇而安== 阅读(37) 评论(0) 推荐(0) 编辑