본문 바로가기
알고리즘

[알고리즘] 전위, 중위, 후위 순회 (Traverse)

by keel_im 2021. 4. 5.
반응형

포인트

  • 트리에서 자료를 순회하는 방법은 전위, 중위, 후위 순회가 있습니다. 
  • level-order로 BFS 와 같이 움직이는 것도 또한, 존재합니다. 

Binary Tree Inorder Traversal

Binary Tree Preorder Traversal

Binary Tree Postorder Traversal

문제를 풀어보았습니다. 

🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. 

 

python

inorder traverse - 중위 순회

# 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:
    def __init__(self):
        self.sel = []
    
    def inorder(self,root: TreeNode):
        if root!=None:
            self.inorder(root.left)
            self.sel.append(root.val)
            self.inorder(root.right)
    
    def inorderTraversal(self, root: TreeNode) -> List[int]:
        sel = []    
        self.inorder(root)
        return self.sel

preorder traverse - 전위 순회

class Solution:
	def __init__(self):
		self.sel = []
	
	def preorder(self, root: TreeNode) -> None:
		if root != None:
			self.sel.append(root.val)
			self.preorder(root.left)
			self.preorder(root.right)
	
	def preorderTraversal(self, root: TreeNode) -> List[int]:
		self.preorder(root)
		return self.sel

postorder traverse - 후위 순회

class Solution:
	def __init__(self):
		self.sel = []
	
	def postorder(self, root: TreeNode) -> None:
		if root != None:
			self.postorder(root.left)
			self.postorder(root.right)
			self.sel.append(root.val)
	
	def postorderTraversal(self, root: TreeNode) -> List[int]:
		self.postorder(root)
		return self.sel
반응형

'알고리즘' 카테고리의 다른 글

[알고리즘] 수영장  (0) 2021.04.05
[알고리즘] 숫자 만들기  (0) 2021.04.05
[알고리즘] 드래곤 커브  (0) 2021.04.03
[알고리즘] 사다리 조작  (0) 2021.04.01
[알고리즘] Palindrome Linked List  (0) 2021.04.01

댓글