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

二叉树的前序遍历

https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 *	TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
方法一:用非递归。
class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
       vector<int>res;
       if(root==NULL)
       {
        return res;
       }
    stack<TreeNode*>s;
    s.push(root);
    while(!s.empty())
    {
        TreeNode*node=s.top();
        s.pop();
        res.push_back(node->val);
     
         if(node->right)
         {
            s.push(node->right);
         }
         if(node->left)
         {
            s.push(node->left);
         }
    }
    return res;
    }
};
方法二:用递归法:
class Solution {
public:
     void process(vector<int>&res,TreeNode* root)
     {
        if(root==NULL)
        {
            return ;
        }
        res.push_back(root->val);
        process(res,root->left);
        process(res,root->right);
     }
    vector<int> preorderTraversal(TreeNode* root) {
       vector<int>res;//建立一个不需要知道元素个数的容器,也就是数组形式
       process(res,root);
       return res;
    }
};

全部评论

相关推荐

程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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