
二叉树
学计算机的小花神
努力向柚子看齐!
展开
-
从前序遍历与中序遍历构造二叉树-LeetCode105
一、题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 二、解题思路 1、唯一确定一棵二叉树的遍历方式 1)前序遍历+中序遍历 2)后序遍历+中序遍历(确定遍历方式必须要中序遍历) 2、对于一棵二叉树而言,前序遍历的形式: [ 根节点, [左子树的前序遍历结果], [右子树的前序遍历结果] ] 中序遍历结果形式: [ [左...原创 2022-04-06 10:34:09 · 856 阅读 · 0 评论 -
二叉树的最大深度-LeetCode104
一、题目描述 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 二、解题思路 (1)层序遍历 将每一层的元素放入队列,循环条件为: while (!queue.isEmpty()) 该循环循环了多少次,该二叉树就有多少层(因为每次循环都会将当前层的所有节点出队,并让其所有子节点入队) (2)深度优先的递归遍历 当前节点的最大高度=Max(左子树最大高度,右子树最大高度) +1;其左右子树的最大高度亦是如此计原创 2022-04-05 22:00:12 · 63 阅读 · 0 评论 -
二叉树层序遍历-LeetCode102
一、题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 二、解题思路(层序遍历) 用队列存储二叉树的元素,当遍历到队头元素时,将其出队并访问,同时将其所有子节点入队(当前队列中的元素个数即为当前二叉树所在层的元素个数) 三、代码实现 class Solution4 { public List<List<Integer>> levelOrder(TreeNode root) { List&原创 2022-04-02 10:20:21 · 497 阅读 · 0 评论