python二叉树的后序遍历算法

# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
# 后序遍历,先遍历左子树,在遍历右子树,在遍历根节点。
from typing import List
class Solution:
    def postorderTraversal(self, root: TreeNode) -> List[int]:
        # 首先定义一个数组,用于接收遍历二叉树遍历的节点。
        self.num_list = []
        self.dfs(root)
        return self.num_list
    def dfs(self,root):
        # 首先判断当前节点是否为空
        if not root:
            return
        # 先去遍历左子树,
        self.dfs(root.left)
        # 然后遍历右子树
        self.dfs(root.right)
        # 最后把根节点添加进入
        self.num_list.append(root.val)

 

你可能感兴趣的