题解 | #二叉树的前序遍历#

二叉树的前序遍历

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届找工作求助阵地##我的实习求职记录#
全部评论

相关推荐

06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务