·二叉树的遍历有先序遍历(根 --> 左 --> 右) 中序遍历(左 -- > 根 -- > 右)
后序遍历(左 -- > 右 ---> 根)
遍历的方法也很简单,只需要将迭代语句和打印语句交换位置即可
`leetcode - 94- 二叉树的中序遍历
·题目描述
给定一个二叉树的根节点 root
,返回 它的 中序 遍历 。
示例 1:
输入:root = [1,null,2,3] 输出:[1,3,2]
示例 2:
输入:root = [] 输出:[]
示例 3:
输入:root = [1] 输出:[1]
·Java代码
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<Integer>();
inorderTraversal(root , res);
return res;
}
private void inorderTraversal(TreeNode root, List<Integer> res) {
if(root == null) return ;
inorderTraversal(root.left , res);
res.add(root.val ) ;
inorderTraversal(root.right , res);
}
private void preorderTraversal(TreeNode root, List<Integer> res) {
if (root == null) return;
res.add(root.val ) ;
preorderTraversal(root.left , res);
preorderTraversal(root.right , res);
}
private void postorderTraversal(TreeNode root, List<Integer> res) {
if (root == null) return;
postorderTraversal(root.left , res);
postorderTraversal(root.right , res);
res.add(root.val ) ;
}
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
}