题解 | #二叉树的前序遍历#
二叉树的前序遍历
https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635
/**
看官方写的是递归的方法,我来写个非递归实现,下面是算法流程
初始化:根节点入栈
-------------------------------------------------------
1)cur节点出栈
2)处理cur节点
3)cur右孩子入栈、cur左孩子入栈
-------------------------------------------------------
栈空时跳出循环
*/
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
// write code here
vector<int> ans;
if(root == NULL) return ans;
vector<TreeNode*> helpans;
TreeNode* temp;
helpans.push_back(root);
while (!helpans.empty()) {
temp = helpans.back();
helpans.pop_back();
ans.push_back(temp->val);
if (temp->right != NULL)
helpans.push_back(temp->right);
if (temp->left != NULL)
helpans.push_back(temp->left);
}
return ans;
}
};
#23届找工作求助阵地##我的实习求职记录#
