一、二叉树的遍历
1.1 前序遍历
public List<Integer> preOrder(TreeNode root) {
if (root == null) {
return new ArrayList<>();
}
List<Integer> list = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode node = stack.pop();
list.add(node.val);
//栈后进先出 所以先压右节点进栈
if (node.right != null) {
stack.push(node.right);
}
if (node.left != null) {
stack.push(node.left);
}
}
return list;
}
1.2 中序遍历
public List<Integer> inOrder(TreeNode root) {
if (root == null) {
return new ArrayList<>();
}
List<Integer> list