代码随想录算法训练营第十一天|二叉树遍历

43 阅读1分钟

定义一个二叉树

class TreeNode:
	def __init__(self,val=0,left=None,right=None):
	self.val = val
	self.left = left
	self.right = right

前序遍历(root->left->right)

class Solution:
	def preorderTraversal(self,root: TreeNode) -> List[int]:
	if root is None:
		return []
	left = self.preorderTraversal(root.left)
	right = self.preorderTraversal(root.right)
	return [root.val] + left + right

中序遍历(left->root->right)

class Solution:
	def inorderTraversal(self,root:TreeNode)->List[int]:
	if root is None:
		return []
	left = self.inorderTraversal(root.left)
	right = self.inorderTraversal(root.right)
	return left + [root.val] + right

后续遍历(left->right->root)

class Solution:
	def postorderTraversal(self,root:TreeNode)->List[int]:
	if root is None:
		return []
	left = self.postorderTraversal(root.left)
	right =self.postorderTraversal(root.right)
	return left + right + [root.val]