leetcode 145. 二叉树的后序遍历解题报告
Posted brianyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 145. 二叉树的后序遍历解题报告相关的知识,希望对你有一定的参考价值。
方法一:递归
vector<int> res; vector<int> postorderTraversal(TreeNode* root) { if (!root) return res; if (root->left) postorderTraversal(root->left); if (root->right) postorderTraversal(root->right); res.push_back(root->val); return res; }
方法二:非递归
vector<int> postorderTraversal(TreeNode* root) { vector<int> res; if (!root) return res; stack<TreeNode*> S; TreeNode* p=root, *r=nullptr; while (p||!S.empty()) { if (p) { S.push(p); p=p->left; } else { p=S.top(); if (p->right&&p->right!=r) p=p->right; else { S.pop(); res.push_back(p->val); r=p; p=nullptr; } } } return res; }
方法三:非递归
vector<int> postorderTraversal(TreeNode* root) { vector<int> res; if (!root) return res; stack<TreeNode*> S; TreeNode* p=root; S.push(p); while (!S.empty()) { p=S.top(); S.pop(); if (p->left) S.push(p->left); if (p->right) S.push(p->right); res.insert(res.begin(),p->val); } return res; }
以上是关于leetcode 145. 二叉树的后序遍历解题报告的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 145. 二叉树的后序遍历(Binary Tree Postorder Traversal)