Binary Tree Inorder Traversal
Inorder traversal(์ค์ ์ํ)๋ฅผ ๊ตฌํํ๋ ๋ฌธ์ ์๋ค.
๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ ์, ์ค์, ํ์ ์ํ์ ๋ํด ๋ค์ ๊ณต๋ถํ๋ค.
[Tree Traversal]
์ค์ ์ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก dfs๋ฅผ ์ด์ฉํ๊ณ ,
์คํ๊ณผ recursion ์ค ๋ญ ์ธ๊น ๊ณ ๋ฏผํ๋ค๊ฐ recursion๋ฅผ ์ด์ฉํ๋ค.dfs๋ฅผ ์งํํ๋๋ฐ ์ค์ ์ํ์ ๋ง๊ฒ
์ผ์ชฝ ์์ - ๋ฃจํธ - ์ค๋ฅธ์ชฝ ์์
์์๋ก ๋๋ฉด ๋๋ค.์ํ์ ๋ํ ๊ฐ๋ ๊ณผ dfs๋ฅผ ์๊ณ ์์ผ๋ฉด ๊ฐ๋จํ ๋ฌธ์
๋~
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: result = [] def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: self.dfs(root) return self.result def dfs(self, root): if root is None: return self.dfs(root.left) self.result.append(root.val) self.dfs(root.right)