144. 二叉树的前序遍历
package leetcode; import java.util.ArrayList; import java.util.List; import java.util.Stack; public class demo_144 { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<Integer>(); Stack<TreeNode>stack=new Stack<TreeNode>(); TreeNode node=root; while(node!=null||!stack.isEmpty()) { //递归向左子树遍历 while(node!=null) { list.add(node.val); stack.push(node); node=node.left; } //跳转到右子树 if(!stack.isEmpty()) { node=stack.pop().right; } } return list; } }
浙公网安备 33010602011771号