题解

binary-tree-preorder-traversal

http://www.nowcoder.com/questionTerminal/501fb3ca49bb4474bf5fa87274e884b4

先序要保证父在最顶层,左高于右,打印顺序是父>左>右

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型ArrayList
     */
    public ArrayList<Integer> preorderTraversal (TreeNode root) {
        // write code here
        ArrayList<Integer> res = new ArrayList<>();

        if (root == null) {
            return res;
        }

        Stack<TreeNode> stk = new Stack<>();
        stk.push(root);
        while (!stk.empty()) {
            TreeNode node = stk.pop();
            res.add(node.val);

            if (node.right != null) {
                stk.push(node.right);
            }
            if (node.left != null) {
                stk.push(node.left);
            }
        }

        return res;
    }
}
全部评论

相关推荐

4 收藏 评论
分享
牛客网
牛客企业服务