LeetCode刷题笔记第145题:二叉树的后序遍历
题目:
给定一棵二叉树的根节点 root ,返回其节点值的后序遍历 。
想法:
后序遍历的是通过对树经过“左右根”的顺序进行遍历。使用递归的方式,先遍历左子树,再遍历右子树,最后遍历根,完成对二叉树的后序遍历。
# 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 postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
res = list()
def postorder(root: TreeNode):
if not root:
return
postorder(root.left)
postorder(root.right)
res.append(root.val)
postorder(root)
return res
使用递归的方式完成二叉树的后续遍历:
时间复杂度:O(n)
空间复杂度:O(n)