
二叉树
文章平均质量分 55
二进制杯莫停
欲速则不达,慢而有为
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
236. 二叉树的最近公共祖先(中等)
Leetcode链接:236. 二叉树的最近公共祖先题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。原创 2021-09-05 15:42:12 · 162 阅读 · 0 评论 -
116. 填充每个节点的下一个右侧节点指针(中等)
Leetcode链接:116. 填充每个节点的下一个右侧节点指针题目描述给定一个 完美二叉树(完全二叉树) ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。进阶:原创 2021-09-05 15:09:09 · 122 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树(中等)
Leetcode链接:106. 从中序与后序遍历序列构造二叉树题目描述根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7源码/** * Definition for a binary tree node. * publi原创 2021-09-05 14:48:31 · 157 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树(中等)
Leetcode链接:105. 从前序与中序遍历序列构造二叉树题目描述给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]提示:1 &l原创 2021-09-05 14:31:06 · 159 阅读 · 0 评论 -
112. 路径总和(简单)
Leetcode链接:112. 路径总和题目描述给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true示例 2:输入:root = [1,2,3], targetSu原创 2021-09-05 13:35:08 · 185 阅读 · 0 评论 -
101. 对称二叉树(简单)
Leetcode链接:101. 对称二叉树题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3进阶:你可以运用递归和迭代两种方法解决这个问题吗?源码递归解法/** * Definition for a原创 2021-09-03 11:09:36 · 112 阅读 · 0 评论 -
104. 二叉树的最大深度(简单)
Leetcode链接:104. 二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。题解DFS解法/** * Definition for a binary tree node. * public class T原创 2021-09-03 10:57:44 · 1350 阅读 · 0 评论 -
Leetcode - 二叉树遍历系列
Leetcode - 二叉树遍历系列1. 前序遍历1.1 递归写法1.2 非递归写法2. 中序遍历2.1 递归写法2.2 非递归写法3. 后序遍历3.1 递归写法3.2 非递归写法Leetcode链接:144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历1. 前序遍历题目:144. 二叉树的前序遍历1.1 递归写法/** * Definition for a binary tree node. * public class TreeNode { *原创 2021-09-02 23:50:06 · 319 阅读 · 0 评论 -
二叉树广度优先搜索、层次遍历
队列实现广度搜索需要借助队列Java队列的实现类为Queue.方法描述boolean offer(E e)入队,添加一个元素并返回true;如果队列已满,则返回falseE poll()出队,移除并返问队列头部的元素,如果队列为空,则返回nullQueue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就原创 2020-08-11 21:36:26 · 1164 阅读 · 0 评论 -
二叉树的层次遍历
102. 二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); //队列 Queue<Tre原创 2020-08-11 21:31:50 · 235 阅读 · 0 评论 -
二叉树的前序遍历、中序遍历和后序遍历(迭代解法)
前言二叉树的非递归算法需要借助栈来完成。Java中栈的实现类为Stack.方法有:序号方法描述boolean empty()测试堆栈是否为空。Object pop( )出栈,移除堆栈顶部的对象,并作为此函数的值返回该对象。Object push(Object element)入栈,把项压入堆栈顶部。Object peek( )查看堆栈顶部的对象,但不从堆栈中移除它。int search(Object element)返回对象在堆栈中的位置,以 1原创 2020-08-05 15:40:05 · 1305 阅读 · 0 评论