LeetCode之Binary Tree Inorder Traversal

来源:互联网 发布:华为手机今年消费数据 编辑:程序博客网 时间:2024/05/17 23:13
 /*方法一:递归中序遍历。*/class Solution {public:    vector<int> inorderTraversal(TreeNode* root) {        vector<int> res;        inorder(root, res);        return res;    }        void inorder(TreeNode* root, vector<int> &res){        if(root == nullptr) return;        if(root->left != nullptr) inorder(root->left, res);        res.push_back(root->val);        if(root->right != nullptr) inorder(root->right, res);    }}; /*方法二:利用栈,迭代法中序遍历*/class Solution {public:    vector<int> inorderTraversal(TreeNode* root) {        vector<int> res;        if(root == nullptr) return res;        stack<TreeNode*> s;        TreeNode *p = root;        while(!s.empty() || p != nullptr){            if(p != nullptr){                s.push(p);                p = p->left;            }            else{                p = s.top();                s.pop();                res.push_back(p->val);                p = p->right;            }        }        return res;    }};

0 0
原创粉丝点击