这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战
前序遍历:
枚举规则: 根节点 ---->左子树---->右子树
代码: 1, 递归方式
List preoderTraversal(TreeNode root){
preorder(root);
return list;
}
private void preorder(TreeNode node) {
if(node ==null){
return;
}
list.add(node.val);
list.add(node.left);
list.add(node.right);
}
2, 非递归方式
public List preorderTraversal(TreeNode root){
List list =new ArrayList<>();
Stack stack =new Stack();
while(!stack.isEmpty()||root !=null){
while(root!=null){
list.add(root.val);
stack.push(root);
root=root.left;
}
root=stack.pop();
root=root.right;
}
}