【力扣】589. N 叉树的前序遍历

题目概述

原题链接
给定一个 N 叉树,返回其节点值的前序遍历 ,N叉树节点定义如下:

class Node {
   
public:
    int val;
    vector<Node*> children;

    Node() {
   }

    Node(int _val) {
   
        val = _val;
    }

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

思考过程

递归法

树的遍历问题基本可以由递归实现,递归的实现需要考虑三点:

  1. 递归终止条件
  2. 递归的返回值
  3. 每一次递归需要处理的事

那么回到N叉树遍历,相比于二叉树,无非是根节点的个数由左右孩子变成了很多孩子,那么在N叉树遍历时,只需要考虑如何去除N个孩子即可,从Node定义可知,N个子孩子存储在一个vector数组中,那么主需要利用一个for循环即可取出N个孩子,代码如下:

   void dfs(Node* root, vector<int>& vt) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值