
树
Jeniclala
这个作者很懒,什么都没留下…
展开
-
树:路经总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。思路sum : 从根节点到叶子节点的路径上的节点值相加的目标和对 root 递归。转为判断:root 的左、右子树中能否找出和为 sum - root.val 的路径就变成一个规模小一点的相同问题即,每遍历一个节点,sum 就减去当前节点值,当遍历到叶子节点时,已经没有子节点了,如果 sum - 当前叶子节点值 ==原创 2021-08-19 14:53:49 · 118 阅读 · 0 评论 -
JavaScript 树&数组:树转数组 以及 数组转成树
//数组var array = [ { pid: null, id: 1 }, { pid: 1, id: 2 }, { pid: 1, id: 5 }, { pid: 2, id: 3 }, { pid: 2, id: 4 }]//树var tree = [{ pid: null, id: 1, children: [{ pid: 1, id: 2, children: [{原创 2021-08-18 23:12:31 · 540 阅读 · 0 评论 -
树:二叉树的层序遍历 & 求二叉树宽度
// 1// / \// 2 3// / / \// 4 5 6// / \// 7 8var tree = { value: 1, left: { value: 2, left: { value: 4 } }, right: { value: 3, left: { va.原创 2021-08-11 15:21:10 · 115 阅读 · 0 评论 -
树:二叉搜索树的第k个结点
描述给定一棵二叉搜索树,请找出其中的第k小的TreeNode结点。示例1输入:{5,3,7,2,4,6,8},3返回值:4说明:按结点数值大小顺序第三小结点的值为4思路:二叉搜索树的中序遍历是有序的function KthNode(pRoot, k){ let res=[]; inorderTraversal(pRoot,res); return res[k-1];}//中序遍历function inorderTraversal(node,array){原创 2021-07-07 08:23:42 · 91 阅读 · 0 评论 -
树:平衡二叉树
描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。注:我们约定空树是平衡二叉树。示例输入:{1,2,3,4,5,6,7}返回值:true思路:单独写一个求二叉树深度的函数,同之前的题目。递归判断,若空树,则为true若左右子树深度之差的绝对值>1,则返回fals原创 2021-07-06 22:36:23 · 185 阅读 · 1 评论 -
树:二叉树的镜像
描述操作给定的二叉树,将其变换为源二叉树的镜像。比如: 源二叉树8/ 6 10/ \ / 5 7 9 11镜像二叉树8/ 10 6/ \ / 11 9 7 5示例1输入:{8,6,10,5,7,9,11}返回值:{8,10,6,11,9,7,5}思路:递归交换二叉树所有节点左右节点的位置。//本题测试用例// 1// / \// 2 3// / / \// 4 5 6// / \原创 2021-07-06 22:09:44 · 80 阅读 · 0 评论 -
树:中序遍历、前序遍历、后序遍历
以下所有代码的测试用例:// 1// / \// 2 3// / / \// 4 5 6// / \// 7 8var tree = { value: 1, left: { value: 2, left: { value: 4 } }, right: { value: 3, left: {原创 2021-07-06 21:52:02 · 115 阅读 · 0 评论 -
树:二叉树的最大深度
描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。示例1输入:{1,2,3,4,5,#,6,#,#,7}返回值:4思路:深度优先遍历 + 分治一棵二叉树的最大深度等于左子树深度和右子树最大深度的最大值 + 1如果根不存在,返回0function TreeDepth(pRoot){ return pRoot? Math.max(TreeDepth(pRoot.left),TreeDepth(pRoot.right原创 2021-07-06 21:43:30 · 159 阅读 · 0 评论 -
树专题-判断是否为同一个二叉搜索树序列
输入:第一行:想判断序列的个数第二行:对比序列第三行-第n-2行:想判断的n个序列输出:相同YES不同NO#include<iostream>#include<cstdio>#include<cstring>using namespace std;struct Node{ Node *lchild; Node *rchild; cha...原创 2019-06-22 12:47:24 · 171 阅读 · 0 评论 -
树专题-二叉排序树
输入:第一行:个数n第二行:输入n个整数输出:构建后的二叉排序树的前序遍历中序遍历后序遍历#include<iostream>#include<cstring>using namespace std;struct Node{ Node *lchild; Node *rchild; int c;}Tree[110];int loc;Node ...原创 2019-06-21 19:34:07 · 81 阅读 · 0 评论 -
树专题-二叉树建立以及遍历
输入:第一行:前序遍历序列第二行:中序遍历序列输出:后序遍历序列#include<iostream>#include<cstdio>#include<cstring>using namespace std;struct Node{ Node *lchild; Node *rchild; char c;}Tree[50];int loc...原创 2019-06-21 17:42:39 · 60 阅读 · 0 评论 -
树专题-哈夫曼树
输入:第一行:一个数n第二行:输入n个叶子结点输出:输出权值#include<queue>using namespace std;priority_queue<int,vector<int>,greater<int> > Q;int main(){ int n; while(cin>>n){ while(Q.emp...原创 2019-06-21 11:11:25 · 82 阅读 · 0 评论