전형적인 트리순회에 대한 문제이며, 순회하는 방법은 inorder이다.
재귀방식과 iterate한 방식이 있는데, 순회방법은 stack을 이용하면 좋다
class TreeNode(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res = []
stack = []
curr = root
while stack or root:
if curr :
stack.append(curr)
curr = curr.left
else :
curr = stack.pop()
res.append(curr.val)
curr = curr.right
return res
댓글