class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
LinkedList<Integer> res=new LinkedList<>();
Stack<TreeNode> stack=new Stack<>();
//TreeNode p=root; 这个地方并不影响,可能是为了看起来更方便,并且p引用也是到root的内存地址
while(root!=null||!stack.isEmpty()){
if(root!=null){
stack.push(root);
res.add(root.val);
root=root.left;
}else{
root=stack.pop();
root=root.right;
}
}
return res;
}
}
主要是想对比两种方法吧