![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
yang-hailin
more note
展开
-
18.按之字形层序遍历二叉树
按之字形层序遍历二叉树 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) /* * @Author helen * @Date 2021/4/10 9:16 * @Descriptions * 题目描述 * 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) */ import java.util.ArrayList; import java.util.Stack; public class原创 2021-04-23 14:38:44 · 155 阅读 · 0 评论 -
17.按层序遍历二叉树
按层序遍历二叉树 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) /* *@Author helen *@Date 2021/4/9 10:28 *@Descriptions */ import org.junit.Test; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class 按层序遍历二叉树 { public A原创 2021-04-23 14:36:57 · 211 阅读 · 0 评论 -
16.平衡二叉树
平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 平衡二叉树(Balanced Binary Tree),具有以下性质: * 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 示例1 输入 {1,2,3,4,5,6,7} 返回值 true /* * @Author helen * @Date 2021/4/16 11:09 * @De原创 2021-04-23 14:34:28 · 59 阅读 · 0 评论 -
15.二叉树的前中后序遍历
二叉树的前中后序遍历 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @Data public class BTreeNode<T>{ T data; BTreeNode<T> left; BTreeNode<T> right; BTr原创 2021-04-23 14:31:06 · 71 阅读 · 0 评论 -
6.输入一棵二叉树,判断该二叉树是否是平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 平衡二叉树(Balanced Binary Tree),具有以下性质: 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 示例1 输入 {1,2,3,4,5,6,7} 返回值 true /* * @Author helen * @Date 2021/4/16 11:09原创 2021-04-16 11:14:47 · 124 阅读 · 0 评论 -
5.判断搜索二叉树和完全二叉树
判断搜索二叉树和完全二叉树 题目描述 给定一棵二叉树,已经其中没有重复值的节点,请判断该二叉树是否为搜索二叉树和完全二叉树。 示例1 输入 {2,1,3} 返回值 [true,true] 回顾: 搜索二叉树 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。原创 2021-04-15 19:07:05 · 131 阅读 · 0 评论 -
4.求给定二叉树的最大深度
求给定二叉树的最大深度 题目描述 求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。 示例1 输入 {1,2} 返回值 2 示例2 输入 {1,2,3,4,#,#,5} 返回值 3 算法思想: 递归法、使用队列层序遍历二叉树并记录深度 package 牛客.树; import java.util.LinkedList; import java.util.Queue; /* * @Author helen原创 2021-04-15 14:54:47 · 370 阅读 · 0 评论 -
3.树的右视图
请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 示例1 输入 [1,2,4,5,3],[4,2,5,1,3] 返回值 [1,3,5] 思路 先根据二叉树的前序遍历,中序遍历恢复二叉树,然后根据二叉树进行层序遍历的方法找到每层的最右结点,并add进list里面,然后转换成整型数组 /* * @Author helen * @Date 2021/4/14 15:57 * @Descriptions * 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图原创 2021-04-14 16:13:11 · 200 阅读 · 0 评论 -
2.重建二叉树
重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 示例1 输入 [1,2,3,4,5,6,7],[3,2,4,1,6,5,7] 返回值 {1,2,5,3,4,6,7} 算法思想: 前序遍历序列的第一个元素就是该树的根结点,在中序遍历序列中寻找到该元素后,该元素前面的则为左子树的所有元素,该原创 2021-04-12 17:29:44 · 100 阅读 · 0 评论 -
1.二叉数的两个节点的最低公共祖先
二叉数的两个节点的最低公共祖先 算法思想: public int lowestCommonAncestor (BTreeNode<Integer> root, int o1, int o2) { // write code here if(root == null) return -1; if(root.data == o1 || root.data == o2) return root.data;原创 2021-04-11 14:47:38 · 96 阅读 · 0 评论