栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【数据结构入门

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据结构入门

前序遍历:

原题链接:Leetcode 144. Binary Tree Preorder Traversal

Given the root of a binary tree, return the preorder traversal of its nodes’ values.

Example 1:

Input: root = [1,null,2,3]
Output: [1,2,3]

Example 2:

Input: root = []
Output: []

Example 3:

Input: root = [1]
Output: [1]

Constraints:

  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

方法一:递归 思路:

二叉树的三个遍历都可以方便的用递归实现,只需要改变访问根结点、访问左孩子、访问右孩子的次序即可

c++代码:
class Solution {
public:
    vector ans;
    vector preorderTraversal(TreeNode* root) {
        // 为空则直接返回
        if(root == NULL)
            return ans;

        ans.emplace_back(root->val);
        preorderTraversal(root->left);
        preorderTraversal(root->right);
        return ans;
    }
};

复杂度分析:
  • 时间复杂度:O(n),需要遍历每个结点
  • 空间复杂度:O(n),最坏情况下,递归栈的深度是整个树所有结点之和
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号