定义一个二叉树
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]