
二叉树
aeipyuan
渣渣一枚,请多指教。。。。。。
展开
-
封装线段树实现基本功能
线段树封装 1. 结点类TreeNode /* 树结点*/ function TreeNode(x, y, val) { this.x = x; this.y = y; this.val = val || null; } 2. 线段树类 通过options可以传入pushUp函数设置父子结点关系,root记录线段树根节点 function SegTree(options)...原创 2020-05-03 13:56:59 · 286 阅读 · 0 评论 -
重建二叉树
重建二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素 示例: 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 递归方式: 设置递归函数build,参数x,y表示当前子树所在inOrde...原创 2020-05-02 13:56:07 · 138 阅读 · 0 评论 -
二叉搜索树专题
1.验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 输入: 2 / \ 1 3 输出: true 链接:https://leetcode-cn.com/problems/validate-binar...原创 2020-04-19 14:18:53 · 146 阅读 · 0 评论 -
二叉树路径问题
二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 递归解法 深度优先遍历二叉树并用数组记录经过的结点,到达叶子节点时...原创 2020-04-17 17:19:57 · 295 阅读 · 0 评论 -
二叉树LCA--leetcode236题
二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 输入: root = [3,5...原创 2020-04-16 14:32:18 · 318 阅读 · 0 评论 -
二叉树创建与前、中、后序遍历
二叉搜索树的创建 定义Node为节点类,Tree为二叉树,设置方法insert用于增加树上的结点,根据节点和树上已有结点的权值大小确定插入位置。 /* 结点 */ function Node(val, left, right) { this.val = val; this.left = null; this.right = null; } /* 树 */ function...原创 2020-04-15 17:29:12 · 160 阅读 · 0 评论 -
判断一棵满二叉树是否为二叉搜索树(笔试题)
判断一棵满二叉树是否为二叉搜索树 给定一棵满二叉树,判定该树是否为二叉搜索树,是的话打印True,不是的话打印False 说明: a. 二叉搜索树(Binary Search Tree),它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索...原创 2020-03-22 16:35:23 · 416 阅读 · 0 评论