二叉树
文章平均质量分 53
CelineCoding
Keep moving, stay kind.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode105. 从前序和中序遍历构造二叉树 -- 递归
题目 解题思路 先序遍历顺序:根左右; 中序遍历顺序:左根右; 根据先序得到根节点位置; 根据根节点位置 结合中序,得到左右子树; 先序遍历、中序遍历中左右子树个数相同,可求出先序、中序中左右子树的下标; 利用 map 求出根节点的位置,map始终存的是中序遍历元素(包括 leetcode106也是); 画图!画图!画图!画图可清楚的看出来左右子树的下标。 画图求左右子树下标 根据左右子树在先序和中序遍历中的个数相同,得出: x - (preLeft + 1) = pIndex - 1 - inLe原创 2022-03-20 18:49:27 · 678 阅读 · 0 评论 -
Leetcode104. 二叉树的最大深度 -- JavaScript版
二叉树的概念:树中每个节点最多只能有两个子节点。 树的一些常用操作,深度优先遍历DFS、广度(宽度)优先遍历BFS,二叉树的先、中、后序遍历。 题目描述 思路 这道题要求找出数的最大深度,优先考虑使用DFS,DFS可以对根节点以及根结点的children进行深度查找,在查找的过程中,记录每个节点的层级,找到最大的即可。 时间复杂度为 O(n),n为整棵树的节点树,因为每个节点都遍历到; 空间复杂度为 O(n),n为最大深度。 为什么空间复杂度是O(n),而不是O(1)呢? 因为code中存在函数里面调用函原创 2022-03-03 14:52:48 · 865 阅读 · 0 评论 -
剑指 offer28. 对称的二叉树 -- JavaScript解法
题目描述 解题思路 使用BFS,层层遍历,判断节点是否相等。 镜像对称,说明 左子树的左节点等于右子树的右节点,且左子树的右节点等于右子树的左节点。 解题步骤 root为null,直接返回true; 构建checkSame(left,right)方法,传入根节点的左右子树; 若左右子树都为null,说明对称,返回true; 若左右子树都存在,则需要:root值相等 && 递归左右子树的child(child也需要满足镜像) Coding var isSymmetric = functi原创 2022-02-25 18:54:37 · 373 阅读 · 0 评论
分享