#二叉

二叉树深度 --牛客网

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 本题用递归方式求解,代码最为简洁。classSolution{public:intTreeDepth(TreeNode*pRoot){intleftdep=1,rightdep=1;if(...
代码星球 代码星球·2021-02-09

判断平衡二叉树 --牛客网

输入一棵二叉树,判断该二叉树是否是平衡二叉树。  平衡二叉树是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。本题可以视为上题的进阶版,同样用递归方式做。classSolution{public:boolIsBalanced_Solution(TreeNode...
代码星球 代码星球·2021-02-09

算法笔记_053:最优二叉查找树(Java)

/目录1问题描述2解决方案在了解最优二叉查找树之前,我们必须先了解何为二叉查找树?引用自百度百科一段讲解:二叉排序树(BinarySortTree)又称二叉查找树(BinarySearchTree),亦称二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于或...

算法笔记_189:历届试题 横向打印二叉树(Java)

/目录1问题描述2解决方案问题描述二叉树可以用于排序。其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树。当遇到空子树时,则把该节点放入那个位置。比如,10857124的输入顺序,应该建成二叉树如下图所示,其中.表示空白。...|-1210-|...|-8-|.......

leetcode 111-二叉树最小深度

  首先,最小深度的定义为根节点到最近叶子节点的深度,  那么,空树的最小深度为0;  左右子树都不存在的节点,最小深度为1;  左右子树不都为空,左右子树中有空树的情况,最小深度一定是在非空树中产生,因为最小深度定义为到最近叶子节点的深度。一旦左右子树有空的情况,这边的深度就可以置为正无穷,表示最小深度不可能再这里产...

使用java实现二叉查找树的插入,修改和删除方法

目前使用的是根据key的hashcode来进行排序,并且没有考虑hash碰撞的问题 1packagecom.zhou.tree;23importjava.util.Comparator;4importjava.util.HashMap;5importjava.util.Map;67/**8*@Descript...

算法-二叉搜索树

二叉搜索树二叉搜索树的重要应用场景是组织索引,其定义如下:如一颗二叉树的每个节点对应一个关键码值,且关键码值的组织是有顺序的,例如左子节点值小于父节点值,父节点值小于右子节点值,则这颗二叉树是一颗二叉搜索树。   插入的逻辑:将待插入的节点,同树根的关键码值进行比较,如果比根节点小,则进入...
代码星球 代码星球·2021-02-03

Q222:满二叉树结点个数

/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(intx){val=x;}*}*/classSolution{publicintcountNodes(TreeNode...
代码星球 代码星球·2021-02-03

算法练习之二叉树的最小深度,路径总和

1.二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/920/157返回它的最小深度2.java/***Definitionforabinarytre...

算法练习之将有序数组转换为二叉搜索树,平衡二叉树

1.将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。题中,高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例:给定有序数组:[-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二...

算法练习之二叉树的最大深度,二叉树的层次遍历 II

1.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/920/157返回它的最大深度 3。java/***Definitionf...

算法练习之相同的树,对称二叉树

1.相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入:11//2323[1,2,3],[1,2,3]输出:true示例2:输入:11/22[1,2],[1,null,2]输出:false示例3:输入:11//2112[1,2,1],[...

二叉树BinaryTree构建测试(无序)

  此测试仅用于二叉树基本的性质测试,不包含插入、删除测试(此类一般属于有序树基本操作)。//二叉树树类publicclassBinaryTree{publicTreeNoderoot;//有一个根节点publicstaticintindex;publicTreeNodeCreateBTree(int[]a){Tree...

leecode 226. 翻转二叉树,简单

利用递归重复翻转即可,先翻转左子树再翻转又子树都可:/** * Definition for a binary tree node. * public class TreeNode { *&...

2016搜狐笔试二叉树和最大的子树

问题描述: 给一个二叉树,每个节点都是正或负整数,如何找到一个子树,它所有节点的和最大? 思路:采用自底向上的计算。先计算左右子树总和值,用左右子树的总和加上当前节点值,如果当前总和大于最大值,则更新最大值,同时将最大子树根节点更新为当前根。简单说,就是后序遍历。 代码:[cpp]&nbs...
首页上一页12345...下一页尾页