题解 | #二叉树的前序遍历#
二叉树的前序遍历
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届找工作求助阵地##我的实习求职记录#