题目来源:LeetCode
二叉树的前序遍历
二叉树前序遍历
public List<Integer> preorderTraversal(TreeNode root) {
if(root == null){
return new ArrayList<>();
}
List<Integer> left = preorderTraversal(root.left);
List<Integer> right = preorderTraversal(root.right);
List<Integer> List = new ArrayList<>();
//前序遍历是:根 + 左 + 右
List.add(root.val);
List.addAll(left);
List.addAll(right);
return List;
}
二叉树中序遍历:
二叉树中序遍历
public List<Integer> inorderTraversal(TreeNode root) {
if(root == null){
return new ArrayList<>();
}
List<Integer> left = inorderTraversal(root.left);
List<Integer> right = inorderTraversal(root.right);
List<Integer> List = new ArrayList<>();
//中序遍历是: 左 + 根 + 右
List.addAll(left);
List.add(root.val);
List.addAll(right);
return List;
}
二叉树的后序遍历:
二叉树后序遍历
public List<Integer> postorderTraversal(TreeNode root) {
if(root == null){
return new ArrayList<>();
}
List<Integer> left = postorderTraversal(root.left);
List<Integer> right = postorderTraversal(root.right);
List<Integer> List = new ArrayList<>();
//后序遍历是: 左 + 右 + 根
List.addAll(left);
List.addAll(right);
List.add(root.val);
return List;
}