classTreeNode:def__init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
defpreorderTraversal(self, root: TreeNode):# 若为空,直接返回空列表ifnot root:return[]
left = self.preorderTraversal(root.left)
right = self.preorderTraversal(root.right)return[root.val]+ left + right
中序遍历
definorderTraversal(self, root: TreeNode):ifnot root:return[]
left = self.inorderTraversal(root.left)
right = self.inorderTraversal(root.right)return left +[root.val]+ right
后序遍历
defpostorderTraversal(self, root: TreeNode):ifnot root:return[]
left = self.postorderTraversal(root.left)
right = self.postorderTraversal(root.right)return left + right +[root.val]
层序遍历
deflevelTraversal(self, root: TreeNode):ifnot root:return[]
queue = deque([root])
res =[]while queue:
level =[]
n =len(queue)while n:
n -=1
cur = queue.popleft()
level.append(cur.val)if cur.left:
queue.append(cur.left)if cur.right:
queue.append(cur.right)
res.append(level)