Binary Tree Inorder Traversal

来源:互联网 发布:linux u盘启动盘 编辑:程序博客网 时间:2024/04/24 09:32

问题:二叉树的非递归中序遍历。

//code

class Solution {public:    vector<int> inorderTraversal(TreeNode *root) {        stack<TreeNode *> s;        vector<int> vec;        if(root == NULL)             return vec;        s.push(root);        while(!s.empty())        {            TreeNode *cur = s.top();            while(cur->left) {s.push(cur->left); cur = cur->left;}            while(cur->right == NULL)            {               vec.push_back(cur->val);               s.pop();               if(!s.empty())                  cur = s.top();               else                  break;            }            if(cur->right)            {                vec.push_back(cur->val);                s.pop();                s.push(cur->right);            }        }        return vec;    }};

程序直接在线写的,格式不是很好,见谅。

0 0
原创粉丝点击