1. 二叉树递归遍历
1.1 前序遍历
代码如下:
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList();
preorder(root,list);
return list;
}
public void preorder(TreeNode root,List<Integer> list){
if(root == null){
return;
}
list.add(root.val);
preorder(root.left,list);
preorder(root.right,list);
}
}
1.2 中序遍历
代码如下:
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList();
inorder(root,list);
return list;
}
public void inorder(TreeNode root,List<Integer> list){
if(root == null){
return;
}
inorder(root.left,list);
list.add(root.val);
inorder(root.right,list);
}
}
1.3 后序遍历
代码如下:
class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList();
postorder(root,list);
return list;
}
public void postorder(TreeNode root,List<Integer> list){
if(root == null){
return;
}
postorder(root.left,list);
postorder(root.right,list);
list.add(root.val);
}
}