递归方式:
public class TreeNode {
public int var;
public TreeNode left;
public TreeNode right;
public TreeNode(int var) {
this.var = var;
}
}
public class TreePre {
public static void main(String[] args) {
TreeNode root = new TreeNode(1);
TreeNode one = new TreeNode(2);
TreeNode two = new TreeNode(3);
root.right = one;
one.left = two;
List<Integer> nodeList = new ArrayList<>();
treePre(root, nodeList);
System.out.println("前序遍历:"+nodeList);
List<Integer> backList = new ArrayList<>();
treeBack(root, backList);
System.out.println("后序遍历:"+backList);
List<Integer> midList = new ArrayList<>();
treeMid(root, midList);
System.out.println("中序遍历:"+midList);
}
public static List<Integer> treePre(TreeNode root, List<Integer> nodeList) {
if(root != null) {
nodeList.add(root.var);
if(root.left != null) {
nodeList = treePre(root.left, nodeList);
}
if(root.right != null) {
nodeList = treePre(root.right, nodeList);
}
}
return nodeList;
}
public static List<Integer> treeMid(TreeNode root, List<Integer> nodeList) {
if(root != null) {
if(root.left != null) {
nodeList = treeMid(root.left, nodeList);
}
nodeList.add(root.var);
if(root.right != null) {
nodeList = treeMid(root.right, nodeList);
}
}
return nodeList;
}
public static List<Integer> treeBack(TreeNode root, List<Integer> nodeList) {
if(root != null) {
if(root.left != null) {
nodeList = treeBack(root.left, nodeList);
}
if(root.right != null) {
nodeList = treeBack(root.right, nodeList);
}
nodeList.add(root.var);
}
return nodeList;
}
}