Leetcode 94 Binary Tree Inorder Traversal

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

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

   1
    \
     2
    /
   3

return [1,3,2].

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

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