LC590. N 叉树的后序遍历

118 阅读1分钟

590. N 叉树的后序遍历

easy

给定一个 n 叉树的根节点 root ,返回 其节点值的 后序遍历 。

n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。

输入:root = [1,null,3,2,4,null,5,6]

输出:[5,6,3,2,4,1]

思路:

典型板子题,把根节点放在最后,一个递归完事。

/**
 * // Definition for a Node.
 * function Node(val,children) {
 *    this.val = val;
 *    this.children = children;
 * };
 */

/**
 * @param {Node|null} root
 * @return {number[]}
 */
var postorder = function(root) {
    //初始化一个数组
    let res = []
    //基础情况判定
    if(root===null){
        return []
    }
    //处理孩子节点
    back(root.children,res)
    //后序遍历处理自己
    res.push(root.val)
    return res
};

function back(rootChildren,res){
    //孩子节点依次处理
    rootChildren.forEach((i)=>{
        //遍历孩子的孩子
        back(i.children,res)
        //后序遍历自己
        res.push(i.val)
    })
}