树与二叉树

二叉树的结构

1
2
3
4
5
6
7
8
9
10
11
12
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;
}
}

二叉树的递归遍历算法

先序遍历【递归】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
preorder(root, res);
return res;

}

public void preorder(TreeNode root, List<Integer> res) {
if (root == null) {
return;
}
res.add(root.val);
preorder(root.left, res);
preorder(root.right, res);
}
}

中序遍历【递归】

后序遍历【递归】

二叉树的非递归遍历算法

层次遍历