2017-10-01 18:00:27 -05:00
|
|
|
# Definition for a binary tree node.
|
|
|
|
# class TreeNode
|
2020-05-14 11:05:14 +09:00
|
|
|
# attr_accessor :val, :left, :right
|
|
|
|
# def initialize(val)
|
|
|
|
# @val = val
|
|
|
|
# @left, @right = nil, nil
|
|
|
|
# end
|
2017-10-01 18:00:27 -05:00
|
|
|
# end
|
|
|
|
|
|
|
|
# @param {TreeNode} root
|
|
|
|
# @return {Integer[]}
|
|
|
|
def preorder_traversal(root)
|
2020-05-14 11:05:14 +09:00
|
|
|
ans = []
|
|
|
|
def traverse(node, ans)
|
2021-02-06 23:05:54 -08:00
|
|
|
unless node.nil?
|
2020-05-14 11:05:14 +09:00
|
|
|
ans.push(node.val)
|
|
|
|
traverse(node.left, ans)
|
|
|
|
traverse(node.right, ans)
|
2017-10-01 18:00:27 -05:00
|
|
|
end
|
2020-05-14 11:05:14 +09:00
|
|
|
end
|
|
|
|
traverse(root, ans)
|
2021-02-06 23:05:54 -08:00
|
|
|
ans
|
|
|
|
end
|