Leetcode 144 Binary Tree Preorder Traversal

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?

def preorder_traversal(root)
  ans, stack = [], [root]
  while not stack.empty?
    if node = stack.pop
      ans << node.val
      stack << node.right << node.left
    end
  end
  ans
end
posted @ 2015-06-14 15:02  lilixu  阅读(125)  评论(0编辑  收藏  举报