力扣刷题 589/590. N叉树的前后序遍历

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

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


示例 1:

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

示例 2:

输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:[1,2,3,6,7,11,14,4,8,12,5,9,13,10]

原理与二叉树的前序遍历和后序遍历是一样的

N叉树的定义


// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;

    Node() {}

    Node(int _val) {
        val = _val;
    }

    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};

 N叉树的孩子节点保存在一个children数组中

前序遍历

class Solution {
public:
    vector<int> result;
    vector<int> preorder(Node* root) {
        //终止条件
        if(root == NULL){
           return result;
        }
        //递归逻辑
        // 中
        result.push_back(root->val);
        //依次前序遍历孩子节点
        for(int i = 0; i < root->children.size(); i++){
            preorder(root->children[i]);
        }
        return result;
    }
};

 后序遍历

class Solution {
public:
    vector<int> result;
    vector<int> postorder(Node* root) {
        //终止条件
        if(root == NULL){
           return result;
        }
        //递归逻辑
        //依次后序遍历孩子节点
        for(int i = 0; i < root->children.size(); i++){
            postorder(root->children[i]);
        }
        // 中
        result.push_back(root->val);
        return result;
    }
};

相关推荐

  1. 每日一590N

    2024-04-14 15:18:06       25 阅读
  2. N-

    2024-04-14 15:18:06       7 阅读
  3. 2024.2.17每日一——N

    2024-04-14 15:18:06       21 阅读
  4. 练习】103. 二锯齿形层

    2024-04-14 15:18:06       45 阅读
  5. 每日一145二

    2024-04-14 15:18:06       42 阅读
  6. 每日一144二

    2024-04-14 15:18:06       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 15:18:06       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 15:18:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 15:18:06       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 15:18:06       20 阅读

热门阅读

  1. 无人机光伏电站巡检:技术革新与未来趋势

    2024-04-14 15:18:06       22 阅读
  2. Kotlin - 时间 Duration

    2024-04-14 15:18:06       18 阅读
  3. 使用自动化脚本获取多多买菜数据

    2024-04-14 15:18:06       62 阅读
  4. c#使用OleDb库更改Access数据库的密码

    2024-04-14 15:18:06       16 阅读
  5. BOM事件的重点——之转生在异世界学前端

    2024-04-14 15:18:06       13 阅读
  6. 若依 ruoyi-vue 维护Ancestors字段 树转换成List

    2024-04-14 15:18:06       15 阅读