题目: 解答: 方法一:深度优先搜索 思路与算法: 我们先进行一次深度优先搜索,获取这颗树中的所有节点的值。然后,就可以判断所有节点的值是不是都相等了。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * in ...
分类:
其他好文 时间:
2020-05-03 16:53:20
阅读次数:
53
题目: 解答: 首先复习下二叉搜索树的定义:对于树中的所有子树都有,左子树上的值都小于根节点的值,右子树上的值都大于根节点上的值。 总结一下就是,树的中序遍历可以得到一个升序序列。 那如何保证高度最小呢?当树中的任意结点的左右子树高度差都不超过 1 时,整棵树的深度最小。 下面是一种构造最小高度树的 ...
分类:
其他好文 时间:
2020-05-03 16:48:16
阅读次数:
59
题目: 解答: 同题目530。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode( ...
分类:
其他好文 时间:
2020-05-03 16:47:37
阅读次数:
52
题目: 解答: 从根节点开始遍历,每向下一个节点,我们可以把父节点传入的值左移一位并或上当前节点的值。 int newval = val << 1 | node->val; 这样我们就得到了一个从根节点到当前节点表示的数值。接下来我们要做的只是判断一个节点是不是叶子节点,如果是的话就累加,否则继续。 ...
分类:
其他好文 时间:
2020-05-03 16:34:47
阅读次数:
89
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : ...
分类:
其他好文 时间:
2020-05-03 16:30:10
阅读次数:
38
题目: 解答: 很简单题目,核心就是层序遍历。 如果一个节点的左右左孩子出现空的情况,则用INT_MIN来代替左右孩子节点值,并将左右孩子节点压入队列,这么做的目的只是为了方便我们判断。【类似满二叉树一样对待】 如果在某一深度的搜索结果: (1)x, y都没有找到,则进行下一深度的查找(2)x, y ...
分类:
其他好文 时间:
2020-05-03 16:28:55
阅读次数:
70
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int ...
分类:
其他好文 时间:
2020-05-03 16:21:26
阅读次数:
53
题目: 解答: 同题目"【树】高度平衡二叉树的判定"。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 ...
分类:
其他好文 时间:
2020-05-03 16:13:29
阅读次数:
63
题目: 解答: 方法一:中序遍历 + 构造新的树 我们在树上进行中序遍历,就可以从小到大得到树上的节点。我们把这些节点的对应的值存放在数组中,它们已经有序。接着我们直接根据数组构件题目要求的树即可。 1 /** 2 * Definition for a binary tree node. 3 * s ...
分类:
其他好文 时间:
2020-05-03 16:12:38
阅读次数:
61
题目: 解法: 方法:递归 算法: 从问题的描述中,可以清楚地了解到,我们需要在给定树的每个结点处找到其坡度,并将所有的坡度相加以获得最终结果。要找出任意结点的坡度,我们需要求出该结点的左子树上所有结点和以及其右子树上全部结点和的差值。 因此,为了找出解决方案,我们使用递归函数 traverse,在 ...
分类:
其他好文 时间:
2020-05-03 14:53:40
阅读次数:
61