使用迭代法对二叉树进行前序遍历——Leetcode系列(七)

来源:互联网 发布:淘宝天猫不能改价格吗 编辑:程序博客网 时间:2024/06/15 16:46

Given a binary tree, return the preorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},

   1    \     2    /   3

return [1,2,3].

Note: Recursive solution is trivial, could you do it iteratively?

My Answer

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public List<Integer> preorderTraversal(TreeNode root) {        Stack<TreeNode> stack = new Stack<TreeNode>();        List<Integer> list = new ArrayList<Integer>();        if(root == null){            return list;        }        stack.push(root);        while(!stack.empty()){            TreeNode top = stack.pop();            list.add(top.val);            if(top.right != null){                stack.push(top.right);            }            if(top.left != null){                stack.push(top.left);            }        }        return list;    }}

题目来源:https://oj.leetcode.com/problems/binary-tree-preorder-traversal/

0 0
原创粉丝点击