Leetcode 145 Binary Tree Postorder Traversal

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

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

   1
    \
     2
    /
   3 

return [3,2,1].

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

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