树的结点定义
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
}
递归方式:
- 先序遍历
public static void Xianxu(TreeNode treeNode){
List<Integer> list = new ArrayList<>();
list.add(treeNode.val);
if(treeNode.left!=null){
Xianxu(treeNode.left);
}
if(treeNode.right!=null){
Xianxu(treeNode.right);
}
}
- 中序遍历
public static void Zhongxu(TreeNode treeNode){
List<Integer> list = new ArrayList<>();
if(treeNode.left!=null){
Zhongxu(treeNode.left);
}
list.add(treeNode.val);
if(treeNode.right!=null){
Zhongxu(treeNode.right);
}
}
- 后序遍历
public static void Houxu(TreeNode treeNode){
List<Integer> list = new ArrayList<>();
if(treeNode.left!=null){
Houxu(treeNode.left);
}
if(treeNode.right!=null){
Houxu(treeNode.right);
}
list.add(treeNode.val);
}