![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
枳洛淮南✘
没有人生来就是弱者
展开
-
108. 将有序数组转换为二叉搜索树
108. 将有序数组转换为二叉搜索树链接代码链接108. 将有序数组转换为二叉搜索树代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeN原创 2021-05-11 15:00:21 · 100 阅读 · 0 评论 -
优先级队列(堆)
1. 二叉树的顺序存储1.1 存储方式1. 使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。2. 一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。 这种方式的主要用法就是堆的表示。3.1.2 下标关系已知双亲(parent)的下标,则:左孩子(left)下标 = 2 * parent + 1;右孩子(right)下标 = 2 * parent + 2;已知孩子(不区分左右)(child)下标,则:双亲(parent)下标 = (child - 1) / 2;2原创 2021-03-17 16:11:37 · 190 阅读 · 1 评论 -
236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”题目链接/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left;原创 2021-03-14 18:25:00 · 85 阅读 · 0 评论 -
606. 根据二叉树创建字符串
606. 根据二叉树创建字符串你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。题目链接class Solution { public void preOrder(StringBuilder str, TreeNode node) { if (node != null) { str.appe原创 2021-03-14 18:15:31 · 97 阅读 · 1 评论 -
105. 从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:题目链接class Solution { public List<Integer> intArrayToList(int[] array) { List<Integer> li原创 2021-03-14 17:57:28 · 90 阅读 · 0 评论 -
二叉树遍历
二叉树遍历题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。示例1输入abc##de#g##原创 2021-03-14 10:50:17 · 229 阅读 · 2 评论 -
102. 二叉树的层序遍历
102. 二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。题目链接题解:class Solution { static class NL { TreeNode node; int lever; public NL(TreeNode node, int lever) { this.node = node; thi原创 2021-03-14 10:11:30 · 104 阅读 · 3 评论 -
110. 平衡二叉树
110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。题目链接class Solution { public int getHeight(TreeNode root) { if (root == null) { return 0; } return Math.max(getHei原创 2021-03-14 01:39:50 · 149 阅读 · 1 评论 -
572. 另一个树的子树
572. 另一个树的子树给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。题目链接class Solution { public boolean isSubtree(TreeNode s, TreeNode t) { return search(s, t); } public boolean isSameTree(TreeN原创 2021-03-13 23:56:53 · 85 阅读 · 0 评论 -
101. 对称二叉树
101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:题目链接题解:首先判断 root 是否为空,为空则必是镜像对称,否则对其左右子树进行判断是否互为镜像class Solution { public boolean isSymmetric(TreeNode root) { if (root == null)原创 2021-03-13 23:40:11 · 96 阅读 · 0 评论 -
100. 相同的树
100. 相同的树给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; }原创 2021-03-13 23:26:12 · 84 阅读 · 0 评论 -
二叉树操作
二叉树定义:public class TreeNode{ int val; TreeNode left; //左子树 TreeNode right; //右子树 public TreeNode(int val) { this.val = val; this.left = null; this.right = null; } @Override public String toString原创 2021-03-13 23:02:39 · 238 阅读 · 3 评论 -
二叉树的后序遍历 给定一个二叉树,返回它的后序遍历。
145. 二叉树的后序遍历给定一个二叉树,返回它的 后序 遍历。题目链接题解:class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> ret = new LinkedList<>(); function(root, ret); return ret; } public s原创 2021-03-13 21:35:22 · 149 阅读 · 0 评论 -
二叉树的中序遍历
94. 二叉树的中序遍历给定一个二叉树的根节点 root ,返回它的 中序 遍历。题目链接题解:class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> ret = new LinkedList<>(); func(root, ret); return ret; } pub原创 2021-03-13 21:32:52 · 84 阅读 · 0 评论 -
二叉树的前序遍历
144. 二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:示例 2:示例 3:示例 4:示例 5:题目链接题解:class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ret = new LinkedList<>(); fun(root, re原创 2021-03-13 21:29:15 · 110 阅读 · 0 评论