二叉树遍历
1. 先序遍历
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
preorderTraversal(root, res);
return res;
}
private void preorderTraversal(TreeNode root, List<Integer> list) {
if (root == null) return ;
list.add(root.val);
preorderTraversal(root.left, list);
preorderTraversal(root.right, list);
}public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
while (root != null || !stack.isEmpty()) {
while (root != null) {
res.add(root.val);
stack.push(root);
root = root.left;
}
root = stack.pop();
root = root.right;
}
return res;
}2. 中序遍历
3. 后序遍历
4. 层序遍历
最后更新于
这有帮助吗?