给定一个二叉树,返回它的 前序 遍历。
按照前序遍历的思想,利用递归来实现很简单。
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<Integer>();
preOrder(root, list);
return list;
}
public void preOrder(TreeNode root, List<Integer> list) {
// 利用递归思想,先访问根节点,然后再分别访问左右子树
if (root != null) {
list.add(root.val);
preOrder(root.left, list);
preOrder(root.right, list);
}
}