[leetcode]Binary Tree Postorder TraversalBinary Tree Preorder Traversal
题意:给出了一颗二叉树,求二叉树的前序遍历和后序遍历,题中要求尽量使用非递归方法遍历
后序遍历递归代码:
/*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:void dfs(vector<int> &vec,TreeNode *root){if(root->left!=NULL) dfs(vec,root->left);if(root->right!=NULL) dfs(vec,root->right);vec.push_back(root->val);}vector<int> postorderTraversal(TreeNode *root){vector<int> vec;if(root!=NULL) dfs(vec,root);return vec;}
};
非递归代码:
/*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:vector<int> postorderTraversal(TreeNode *root){vector<int> vec;stack<int> num;stack<TreeNode*> st;if(root!=NULL) st.push(root);TreeNode *node;while(!st.empty()){node=st.top();st.pop();if(node->left!=NULL) st.push(node->left);if(node->right!=NULL) st.push(node->right);num.push(node->val);}while(!num.empty()){vec.push_back(num.top());num.pop();}return vec;}
};
先序遍历递归代码:
/*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:void dfs(vector<int> &vec,TreeNode *root){vec.push_back(root->val);if(root->left!=NULL) dfs(vec,root->left);if(root->right!=NULL) dfs(vec,root->right);}vector<int> preorderTraversal(TreeNode *root){vector<int> vec;if(root!=NULL) dfs(vec,root);return vec;}
};
先序遍历非递归代码:
/*** Definition for binary tree* 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> vec;stack<TreeNode*> st;TreeNode *node;while(root||!st.empty()){while(root){st.push(root);vec.push_back(root->val);root=root->left;}root=st.top();st.pop();root=root->right;}return vec;}
};
[leetcode]Binary Tree Postorder TraversalBinary Tree Preorder Traversal相关推荐
- [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历
Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...
- LeetCode 145. Binary Tree Postorder Traversal
原题链接在这里:https://leetcode.com/problems/binary-tree-postorder-traversal/ 题目: Given a binary tree, retu ...
- [LeetCode 题解]: Binary Tree Preorder Traversal
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a binary ...
- 【二叉树的迭代版后序遍历】LeetCode 145. Binary Tree Postorder Traversal
LeetCode 145. Binary Tree Postorder Traversal Solution1:递归版答案 二叉树的后序遍历递归版是很简单的,关键是迭代版的代码既难理解又难写!但听了花 ...
- 【二叉树迭代版前序遍历】LeetCode 144. Binary Tree Preorder Traversal
LeetCode 144. Binary Tree Preorder Traversal Solution1:递归版 二叉树的前序遍历递归版是很简单的,前序遍历的迭代版相对是最容易理解的. 迭代版链接 ...
- leetcode 971. Flip Binary Tree To Match Preorder Traversal
leetcode 971. Flip Binary Tree To Match Preorder Traversal 题意:给一颗二叉树,再给一个的数组,能否通过交换两个左右两个子节点,使得二叉树的前 ...
- 【LeetCode】971. Flip Binary Tree To Match Preorder Traversal
题目地址: 971. Flip Binary Tree To Match Preorder Traversal 解析 本题是关于二叉树翻转的题目,给定一个二叉树,对于其中的一个节点的翻转定义为该节点的 ...
- [leetcode] Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
- leetcode 144. Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
最新文章
- Goods:图书模块按分类查询各层实现
- TypeError: ‘BasePermissionMetaclass‘ object is not iterable
- 【C++】Visual Studio教程(六) -更新Visual Studio
- Druid-基本概念
- ESP8266代码分析
- 深入浅出 Java 中的包装类
- 三个球A,B,C大小形状相同,且其中有一个球与其他球的重量不同,要求找出这个不一样的球
- JavaScript中实现类似StringBuilder的功能
- 企业局域网内如何跨网安全传输数据
- 网络安全之iptables 实验篇一
- 数字图像相关基础知识
- SSM+高校学生综合评测系统 毕业设计-附源码200851
- visual paradigm 绘图学习记录
- Jetson Nano安装ROS错误合集
- 浅谈如何加强企业成本管理
- PostgreSQL查询 动态输入参数
- java正则校验密码 长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种组合 或者 其中任意三种组合
- type-c英文怎么读音发音,type-c怎么读英语发音
- style计算机词汇,法语词汇学习:计算机及网络词汇(3)
- 2021极客大挑战WP集合
热门文章
- Latex报错:Missing $ inserted
- TensorFlow 关闭日志打印
- html5 流星雨,canvas简单流星雨
- Mysql的介绍和软件环境的部署
- HTML怎么引用QQ相册的照片,qq空间照片打不开 为什么QQ空间里的相册打不开?
- USB存储设备(如:U盘,移动硬盘)
- 在iPhone里玩电路设计:3D版电子电路沙盒上线,支持Arduino,真实还原1000+组件...
- 电路Circuit-Chapter 13 Three-Phase Circuits(三相电路)
- CdlinuxU盘启动,小白教程,不要再看网上那些乱起八糟的了。
- Python实例 一 12306抢票(二) 下单