[leetcode] Binary Tree Postorder Traversal
来源:互联网 发布:反电信网络诈骗的意义 编辑:程序博客网 时间:2024/06/03 15:47
Given a binary tree, return the postorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3},
1
\
2
/
3
return [3,2,1].
Note: Recursive solution is trivial, could you do it iteratively?
递归代码
/** * 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> res; vector<int> left,right; res.clear(); left.clear(); right.clear(); if(root==NULL) return res; if(root->left!=NULL) left=postorderTraversal(root->left); if(root->right!=NULL) right=postorderTraversal(root->right); int lenl=left.size(),lenr=right.size(); if(lenl!=0){ for(int i=0;i<lenl;i++){ res.push_back(left[i]); } } if(lenr!=0){ for(int i=0;i<lenr;i++){ res.push_back(right[i]); } } res.push_back(root->val); return res; }};
虽然AC,但是效率很低,重复计算太多,另提供一种迭代代码,参考大神代码才写出来的,找不到原文连接了,如果大神看到请留言,我把原文连接加进去,这里就先冒用一下了
迭代代码:
/** * 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> res; stack(root,res); return res; } void stack(TreeNode *root,vector<int> &res){ if(root==NULL) return; stack(root->left,res); stack(root->right,res); res.push_back(root->val); }};
0 0
- LeetCode Binary Tree Postorder Traversal
- LeetCode:Binary Tree Postorder Traversal
- Leetcode: Binary Tree Postorder Traversal
- Leetcode: Binary Tree Postorder Traversal
- LeetCode:Binary Tree Postorder Traversal
- Leetcode Binary Tree Postorder Traversal
- [LeetCode]Binary Tree Postorder Traversal
- [LeetCode] Binary Tree Postorder Traversal
- leetcode Binary Tree Postorder Traversal
- 【LeetCode】Binary Tree Postorder Traversal
- LeetCode | Binary Tree Postorder Traversal
- Leetcode: Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal - LeetCode
- LeetCode - Binary Tree Postorder Traversal
- [LeetCode]Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal -- LeetCode
- [LeetCode]Binary Tree Postorder Traversal
- 【LeetCode】Binary Tree Postorder Traversal
- STM32驱动Nokia5110
- Android应用中意见反馈功能的探讨与实现
- Java IO 典型用法 Java编程思想读书笔记
- java模拟post方式提交表单实现图片上传
- 如何发布网站?(window server 2012)
- [leetcode] Binary Tree Postorder Traversal
- 如何修复MySQL数据库(MyISAM / InnoDB)
- Struts常用标签库
- java环境变量配置
- Freemarker 简介
- ASP.NET网站出现错误:由于无法创建应用程序域,因此未能执行请==的处理办法
- LeetCode Spiral Matrix
- OCP 1Z0 053 101
- 使用 XHProf 分析你的 PHP 程序