题目要求
给定二叉树的根节点root,请用先序/中序/后序遍历分别返回其节点值
代码
class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public class TestTree2 {
//给你二叉树的根节点 root ,返回它节点值的 前序遍历。
public List<Integer> preorderTraversal(TreeNode root) {
//先创建一个List
List<Integer> result = new ArrayList<>();
//如果root为空,证明是空的二叉树,那么就直接返回链表
if (root == null){
return result;
}
result.add(root.val);
result.addAll(preorderTraversal(root.left));
result.addAll(preorderTraversal(root.right));
return result;
}
//给你二叉树的根节点 root ,返回它节点值的 中序遍历。
public List<Integer> inorderTraversal(TreeNode root) {
//先创建一个List
List<Integer> result = new ArrayList<>();
//如果root为空,证明是空的二叉树,那么就直接返回链表
if (root == null){
return result;
}
result.addAll(inorderTraversal(root.left));
result.add(root.val);
result.addAll(inorderTraversal(root.right));
return result;
}
//给你二叉树的根节点 root ,返回它节点值的 后序遍历。
public List<Integer> postorderTraversal(TreeNode root) {
//先创建一个List
List<Integer> result = new ArrayList<>();
//如果root为空,证明是空的二叉树,那么就直接返回链表
if (root == null){
return result;
}
result.addAll(postorderTraversal(root.left));
result.addAll(postorderTraversal(root.right));
result.add(root.val);
return result;
}
}