package SecondBrush.Tree;
import java.util.ArrayList;
import java.util.List;
/**
* 94. 二叉树的中序遍历
* 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
* */
public class BinaryTreeInorderTraversal_94 {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
inorder(root, res);
return res;
}
public void inorder(TreeNode root, List<Integer> result){
if (root == null){
return;
}
inorder(root.left,result);
result.add(root.val);
inorder(root.right,result);
}
}
package SecondBrush.Tree;
import java.util.ArrayList;
import java.util.List;
/**
* 145. 二叉树的后序遍历
* 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。
*
* */
public class BinaryTreePostorderTraversal_145 {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
postorder(root, res);
return res;
}
public void postorder(TreeNode root,List<Integer> result){
if (root == null){
return;
}
postorder(root.left,result);
postorder(root.right,result);
result.add(root.val);
}
}
package SecondBrush.Tree;
/**
* 144. 二叉树的前序遍历
* 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
* */
import java.util.ArrayList;
import java.util.List;
/**
* 递归法:
* 前序遍历,最终输出至一个list里面
* 所以先将 中节点加进去,然后递归root.left,root.right
* */
public class BinaryTreePreorderTraversal_144 {
public List<Integer> preorderTraversal(TreeNode root){
List<Integer> result = new ArrayList<Integer>();
preorder(root,result);
return result;
}
public void preorder(TreeNode root, List<Integer> result){
if (root == null){
return;
}
result.add(root.val);
preorder(root.left,result);
preorder(root.right,result);
}
}