Leet Code Binary Tree Inorder Traversal(非递归且实现不用栈的空间复杂度为O(1)的实现)

来源:互联网 发布:贴吧水贴软件 编辑:程序博客网 时间:2024/05/21 09:04
/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<int> inorderTraversal(TreeNode *root){        vector<int> ans;        while(root){            while(root -> left){                                TreeNode *currNode = root->left;                while(currNode->right != NULL &&                       currNode->right != root){                    currNode = currNode -> right;                }                                if(currNode -> right == NULL){                   currNode -> right = root;                   root = root -> left;                }else{                   currNode -> right = NULL;                   break;                }                        }                        ans.push_back(root->val);                        root = root -> right;        }        return ans;    }};


                                             
0 0
原创粉丝点击