# @param {TreeNode} root # @return {Integer[][]}   def dfs(root,dep,arr) return unless root arr[dep]<<root.val dfs(root.left,dep+1,arr) dfs(root.right,dep+1,arr) end   def zigzag_level_order(root) arr=2000.times.map{[]} dfs(root,0,arr) (1..2000).step(2){|i|arr[i].reverse!} arr.pop while arr[-1]==[] arr end