思路:对当前节点输出并左路下降,到头时弹栈作为当前节点。
class Solution {public List<Integer> preorderTraversal(TreeNode root) {Stack<TreeNode> st=new Stack<>();ArrayList<Integer> ret = new ArrayList<>();TreeNode node=root;while(node != null){while(node!=null){ret.add(node.val);if(node.right != null){st.push(node.right);}node = node.left;}if(!st.isEmpty())node = st.pop();}return ret;}}