您的位置:首页 > 其它

leetcode 144. Binary Tree Preorder Traversal

2016-05-23 11:44 323 查看
题目内容

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?

题目分析

二叉树的先序遍历。从根结点开始遍历,一直遍历到“最左的子结点”,然后访问该分支下的右结点。

本题不让用递归调用,用迭代来解决。

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

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: