【算法题】二叉树的中序遍历
2023-09-27 14:29:28 时间
二叉树的中序遍历
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:
public class LC019_94_inorderTraversal_01 {
static List<Integer> ans = new ArrayList<>();
public static void main(String[] args) {
TreeNode tree = TreeNode.createTree();
TreeNode.printTree(tree);
List<Integer> integers = inorderTraversal(tree);
for (Integer integer : integers) {
System.out.println(integer);
}
}
//中序遍历,先遍历根节点
public static List<Integer> inorderTraversal(TreeNode root) {
if (root == null) {
return ans;
}
inorderTraversal(root.left);
ans.add(root.val);
inorderTraversal(root.right);
return ans;
}
}
public class LC019_94_inorderTraversal_02 {
public static void main(String[] args) {
TreeNode tree = TreeNode.createTree();
TreeNode.printTree(tree);
List<Integer> integers = inorderTraversal(tree);
for (Integer integer : integers) {
System.out.println(integer);
}
}
//中序遍历,先遍历根节点
public static List<Integer> inorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList<>();
if (root == null) {
return ans;
}
LinkedList<TreeNode> queue = new LinkedList<>();
while (!queue.isEmpty() || root != null) {
if (root != null) {
queue.add(root);
root = root.left;
} else {
//取出最后添加的,优先输出
TreeNode poll = queue.pollLast();
ans.add(poll.val);
root = poll.right;
}
}
return ans;
}
}
相关文章
- 复旦大学961-数据结构-第二章-树(2)-二叉树的遍历,普通树与二叉树的转换
- C#通过线索二叉树进行中序遍历输出
- hdu3999-The order of a Tree (二叉树的先序遍历)
- 软考考点---平衡二叉树
- LeetCode_二叉树_简单_145.二叉树的后序遍历
- leetcode617. 合并二叉树
- leetcode144 二叉树的前序遍历
- iOS - 二叉树
- 8606 二叉树遍历的建设和运营
- Java实现平衡二叉树(AVLTree)的构建
- 算法:二叉树的三种遍历 & 二叉搜索树的遍历
- 一步一步写算法(之排序二叉树删除-3)
- 二叉树的非递归遍历
- 二叉树的遍历(非递归)
- 满二叉树遍历
- 关于二叉树的几种遍历方法
- 高级数据结构 | 二叉树遍历 —非递归遍历,判断结点引用次数进行优先深度遍历 ...
- LeetCode-101.对称二叉树
- [LeetCode] 549. Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之 II
- [LintCode] 619 Binary Tree Longest Consecutive Sequence III 二叉树最长连续序列 III
- [LeetCode] 199. Binary Tree Right Side View 二叉树的右侧视图
- 李洪强iOS经典面试题35-按层遍历二叉树的节点
- python、java实现二叉树,细说二叉树添加节点、深度优先(先序、中序、后续)遍历 、广度优先 遍历算法
- 《剑指 Offer》学习记录:题 27:二叉树的镜像
- [数据结构 - 第6章] 树之链式二叉树(C语言实现)
- leetcode 106 从中序和后续遍历序列构造二叉树
- python学习之数据结构(六):数据结构与算法:树与树算法: 二叉树的创建、二叉树的遍历(深度遍历[先序遍历,中序遍历,后序遍历], 广度遍历)