定义Node
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;
}
}
前序遍历
List<Integer> integers = new ArrayList<>();
public List<Integer> preorderTraversal(TreeNode root) {
if (root == null) return integers;
integers.add(root.val);
if (root.left != null) {
preorderTraversal(root.left);
}
if (root.right != null) {
preorderTraversal(root.right);
}
return integers;
}
中序遍历
List<Integer> integers = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if (root == null) return integers;
if (root.left != null) {
inorderTraversal(root.left);
}
integers.add(root.val);
if (root.right != null) {
inorderTraversal(root.right);
}
return integers;
}
后序遍历
List<Integer> integers = new ArrayList<>();
public List<Integer> postorderTraversal(TreeNode root) {
if (root == null) return integers;
if (root.left != null) {
postorderTraversal(root.left);
}
if (root.right != null) {
postorderTraversal(root.right);
}
integers.add(root.val);
return integers;
}