binary-tree-postorder-traversa 迭代求解二叉树后序遍历
题目:
求给定的二叉树的后序遍历。
例如:
给定的二叉树为{1,#,2,3},
返回[3,2,1].
备注;用递归来解这道题太没有新意了,可以给出迭代的解法么?
示例:
输入:{1,#,2,3} 输出:[3,2,1]
代码:
1 /** 2 * struct TreeNode { 3 * int val; 4 * struct TreeNode *left; 5 * struct TreeNode *right; 6 * }; 7 */ 8 9 class Solution { 10 public: 11 /** 12 * 13 * @param root TreeNode类 14 * @return int整型vector 15 */ 16 vector<int> postorderTraversal(TreeNode* root) { 17 vector<int> res; 18 if(root == NULL) return res; 19 stack<TreeNode*> st; 20 st.push(root); 21 while( !st.empty() ) { 22 TreeNode* temp = st.top(); 23 st.pop(); 24 res.push_back(temp->val); 25 if(temp->left != NULL) 26 st.push(temp->left); 27 if(temp->right != NULL) 28 st.push(temp->right); 29 } 30 reverse(res.begin(),res.end()); 31 return res; 32 } 33 };
我的笔记:
利用堆栈来实现后序遍历。
算法步骤:
- 存储根节点;
- 存取当前栈顶元素,并出栈;
- 分别判断左右结点是否为空;
- 依次放入左右结点;
- 再进行2~4操作直至栈中元素为空;
- 反转数组。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具