首页 > 试题广场 >

二叉树的后序遍历

[编程题]二叉树的后序遍历
  • 热度指数:81690 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个二叉树,返回他的后序遍历的序列。

后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。

数据范围:二叉树的节点数量满足 ,二叉树节点的值满足 ,树的各节点的值各不相同

样例图

示例1

输入

{1,#,2,3}

输出

[3,2,1]

说明

如题面图  
示例2

输入

{1}

输出

[1]

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型一维数组
     */
    func postorderTraversal ( _ root: TreeNode?) -> [Int] {
        var array: [Int] = []
        if root == nil { return array }
        //后序遍历 left ---> right ---> root
        postorder(arr: &array, root: root)
        return array
    }
    
    //递归函数:inout引用传递参数
    func postorder(arr: inout [Int], root: TreeNode?) {
        if root == nil { return }
        //1、先添加left
        postorder(arr: &arr, root: root?.left)
        //2、再添加right
        postorder(arr: &arr, root: root?.right)
        //3、最后添加root
        arr.append(root!.val)
    }
}

发表于 2026-01-14 16:06:39 回复(0)