博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 145. 二叉树的后序遍历
阅读量:4577 次
发布时间:2019-06-08

本文共 1764 字,大约阅读时间需要 5 分钟。

给定一个二叉树,返回它的 后序 遍历。

示例:

输入: [1,null,2,3]     1    \     2    /   3 输出: [3,2,1]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

 

1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     void dfs(TreeNode* root, vector
& ans){13 if(root == NULL) return;14 if(root->left) dfs(root->left, ans);15 if(root->right) dfs(root->right, ans);16 ans.push_back(root->val);17 }18 vector
postorderTraversal(TreeNode* root) {19 vector
ans;20 dfs(root, ans);21 return ans;22 }23 };

 

迭代的实现:用栈的方式来实现

 

1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 #include
11 class Solution {12 public:13 vector
postorderTraversal(TreeNode* root) {14 stack
s;15 s.push(root);16 vector
ans;17 if(root == NULL) return ans;18 while(!s.empty()){19 TreeNode* temp = s.top();20 if(temp->left){21 s.push(temp->left);22 temp->left = NULL;23 } else if(temp->right){24 s.push(temp->right);25 temp->right = NULL;26 } else{27 ans.push_back(temp->val);28 s.pop();29 }30 }31 return ans;32 }33 };

 

转载于:https://www.cnblogs.com/mr-stn/p/8978055.html

你可能感兴趣的文章
Day74
查看>>
廖雪峰Java8JUnit单元测试-2使用JUnit-3参数化测试
查看>>
5个免费项目管理工具
查看>>
codeforces 502 g The Tree
查看>>
树的一些问题
查看>>
绑定bindchange事件的微信小程序swiper闪烁,抖动问题解决,(将微信小程序切换到后台一段时间,再打开微信小程序,会出现疯狂循环轮播,造成抖动现象)...
查看>>
用expect 实现切换用户时自动输入密码
查看>>
javascript 获取当前对象
查看>>
设计模式(三)---抽象工厂模式
查看>>
bzoj1061: [Noi2008]志愿者招募
查看>>
推荐一款开源、免费的标记语言转换工具,各种文档格式自由转换
查看>>
Erlang基础Mnesia 之应用场景(Why)
查看>>
java使用SimpleDateFormat实现字符串和日期的相互转换
查看>>
JDK动态代理
查看>>
od 转储 二进制文件常用命令
查看>>
HDU 2136 Largest prime factor 參考代码
查看>>
Matlab---串口操作---数据採集篇
查看>>
有趣Web之Json(四)---json与(Object/List/Map)相互转化
查看>>
SQL于DML(数据库操作语言)采用
查看>>
静态库和动态库
查看>>