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;
    }
}

 

posted on 2022-04-02 10:07  一仟零一夜丶  阅读(26)  评论(0)    收藏  举报