[Leetcode] #99 Recover Binary Search Tree

来源:互联网 发布:正版天虹打带软件下载 编辑:程序博客网 时间:2024/06/05 15:25

Discription

Two elements of a binary search tree (BST) are swapped by mistake.

Recover the tree without changing its structure.

Solution

class Solution {public:    TreeNode *pre=NULL;    TreeNode *mistake1=NULL;    TreeNode *mistake2=NULL;       void inordertraveral(TreeNode* root){        if(!root) return;        inordertraveral(root->left);        if(pre && root->val<pre->val){            if(!mistake1){                mistake1=pre;                mistake2=root;            }            else mistake2=root;        }        pre=root;        inordertraveral(root->right);    }        void recoverTree(TreeNode* root) {        inordertraveral(root);        swap(mistake1->val,mistake2->val);    }};


原创粉丝点击