• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > Binary Tree Preorder Traversal (leetcode 144),preorderleetcode

Binary Tree Preorder Traversal (leetcode 144),preorderleetcode

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含preorder traversal,preorder,preorder是什么意思,preordertraverse,preorder asia等服务器相关知识,网友希望可以进行参考

Binary Tree Preorder Traversal (leetcode 144),preorderleetcode


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

For example:
Given binary tree {1,#,2,3},
1
\
2
/
3
return [1,2,3].

Note: Recursive solution is trivial, could you do it iteratively?

Show Tags
Show Similar Problems


可以递归,可以用栈

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
        if (root == NULL) {
            return vector<int>();
        }
        vector<int> a;
        a.push_back(root->val);
        vector<int> l = preorderTraversal(root->left);
        vector<int> r = preorderTraversal(root->right);
        a.insert(a.end(), l.begin(), l.end());
        a.insert(a.end(), r.begin(), r.end());
        return a;
    }
};

// 非递归

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
        vector<int> a;
        if (root == NULL) {
            return a;
        }
        stack<TreeNode*> s;
        s.push(root);
        while(!s.empty()) {
            TreeNode* r = s.top();
            s.pop();
            a.push_back(r->val);
            if (r->right != NULL) {
                s.push(r->right);
            }
            if (r->left != NULL) {
                s.push(r->left);
            }
        }
        return a;
    }
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Binary Tree Preorder Traversal (leetcode 144),preorderleetcode

相关文章

  • MapReduce之RecordReader组件源码解析及实例,mapreduce实例
  • 分布式系列,分布式系统
  • Java服务端限制下载速度,java服务端下载速度
  • Memo Mirantis Fuel 6.1的Internet连接,mirantisfuel
  • Navicat连接oracle,出现Only compatible with oci version 8.1 and&amp;nb,navicatoci
  • RedHadoop创始人童小军在北京开讲“Hadoop2.0集群优化与管理”啦!,redhadoophadoop2.0
  • 整套spark视频教程免费下载,还有Hadoop,sparkhadoop
  • 从Hadoop URL中读取数据,hadoopurl读取数据
  • openstack安装经验总结,openstack经验总结
  • 博文点评后的一点闲扯,博文点评闲扯

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Hadoop之——SQOOP笔记,hadoopsqoop
    • 云服务器之间实时文件同步和文件备份的最简单高效的免费方案,实时文件备份
    • Power8伴随云计算横空出世,power8伴随横空出世
    • MapReduce的两表join操作优化,mapreduce表join
    • hive复杂类型访问操作,hive访问
    • Docker 使用方法总结之:容器的基本操作,docker基本操作
    • apache hadoop-2.6.0-CDH5.4.1 安装笔记,hadoop2.6.0安装
    • Hadoop之——搭建ZooKeeper服务器集群,hadoopzookeeper
    • Neutron数据库同步错误 NotImplementedError: No support for ALTER of constraints in SQLite dialect,sqlitealtertable
    • Nova client源码分析---nova list命令,nova---nova

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有