前序遍历二叉树

来源:互联网 发布:淘宝店铺显示的是昵称 编辑:程序博客网 时间:2024/06/05 18:58

递归

    vector<int> preorderTraversal(TreeNode *root) {        vector<int> result;        if(root==NULL)            return result;        PreorderCore(root,result);        return result;    }    void PreorderCore(TreeNode* root,vector<int>& result){        result.push_back(root->val);        if(root->left)            PreorderCore(root->left,result);        if(root->right)            PreorderCore(root->right,result);    }

非递归:

   vector<int> preorderTraversal(TreeNode *root) {        vector<int> result;        if(root==NULL)            return result;        stack<TreeNode *> trees;        trees.push(root);        while(!trees.empty()){            TreeNode* pNode=trees.top();            trees.pop();            result.push_back(root->val);            if(pNode->right!=NULL)                trees.push(root->right);            if(pNode->left!=NULL)                trees.push(root->left);        }        return result;    }


原创粉丝点击