专栏首页Linux云计算网络LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium

LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium

题目:Binary Tree Preorder Traversal

二叉树的前序遍历,同样使用栈来解,代码如下:

 1 struct TreeNode {
 2     int            val;
 3     TreeNode*    left;
 4     TreeNode*    right;
 5     TreeNode(int x): val(x), left(NULL),right(NULL) {}
 6 };
 7 
 8 vector<int> preorderTraversal(TreeNode *root) //非递归的前序遍历(用栈实现)
 9 {
10     if (NULL == root) {
11         cout << "tree is empty!" << endl;
12         exit(0);
13     }
14 
15     TreeNode *pre = root;
16     //TreeNode *pTemp = pre;
17     stack<TreeNode *> tree_stack;
18     vector<int> tree_vector;
19     
20     tree_stack.push(pre);
21     while (!tree_stack.empty()) {
22         TreeNode *pTemp = tree_stack.top();
23         tree_stack.pop();
24 
25         tree_vector.push_back(pTemp->val);
26         if (pTemp->right != NULL) 
27             tree_stack.push(pTemp->right);
28         if (pTemp->left != NULL)
29             tree_stack.push(pTemp->left);
30     }
31     return tree_vector;
32 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode:145_Binary Tree Postorder Traversal | 二叉树后序遍历 | Hard

    题目:Binary Tree Postorder Traversal 二叉树的后序遍历,题目要求是采用非递归的方式,这个在上数据结构的课时已经很清楚了,二叉树的...

    猿大白
  • LeetCode:94_Binary Tree Inorder Traversal | 二叉树中序遍历 | Medium

    题目:Binary Tree Inorder Traversal 二叉树的中序遍历,和前序、中序一样的处理方式,代码见下: 1 struct TreeNode...

    猿大白
  • LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy

    本题和上题一样同属于层次遍历,不同的是本题从底层往上遍历,如下: ? ? 代码如下: 1 struct TreeNode { 2 int ...

    猿大白
  • LeetCode:145_Binary Tree Postorder Traversal | 二叉树后序遍历 | Hard

    题目:Binary Tree Postorder Traversal 二叉树的后序遍历,题目要求是采用非递归的方式,这个在上数据结构的课时已经很清楚了,二叉树的...

    猿大白
  • Python使用pyzabbix调用Zabbix API

    Zabbix能监视各种网络参数,监控服务器系统的安全运营状况,并提供灵活的通知机制以让服务器管理员快速定位和解决存在的各种问题。

    Python碎片公众号
  • Taro 实战网易严选三端项目

    项目已经有点老旧。Martin 推荐它,是因为这是一个完整的 Taro 多端电商项目。

    前端老王
  • Github Daily - Taro 实战网易严选三端项目

    嗨,我是 Martin,也叫老王。今天推荐一个 React 实战项目,使用京东的 Taro 框架开发的三端电商应用 —— 仿网易严选。

    前端老王
  • Babel 7有哪些新特性

    1、首先是babel在转换js时将js的语法分为了两部分一部分是语法,一部分是api,语法可以根据环境配置来转换,而api则需要安装特定的插件。

    挥刀北上
  • 1.1 ASM-简介-目的

    上面所述的技术可以应用于任何编程语言,只不过在实现上的难易程度取决于编程语言。 对于Java在这种情况下,可以在源码或者字节码中应用。 如果在字节码中应用,显而...

    白凡
  • RedHat 开源企业镜像项目 Quay

    Quay 是一个registry,存储,构建和部署容器的镜像仓库。它分析您镜像中的安全漏洞,可帮助您减轻潜在的安全风险问题。此外,它提供地理复制和BitTorr...

    YP小站

扫码关注云+社区

领取腾讯云代金券