标签:des style http color os io for ar
Problem Description:
Two elements of a binary search tree (BST) are swapped by mistake.
Recover the tree without changing its structure.
Note:
confused what "{1,#,2,3}"
means? >
read more on how binary tree is serialized on OJ.
The serialization of a binary tree follows a level order traversal, where ‘#‘ signifies a path terminator where no node exists below.
Here‘s an example:
1
/ 2 3
/
4
5
The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}"
./** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode *pre,*p1,*p2; void helper(TreeNode *root) { if(root==NULL) return; helper(root->left); if(pre&&pre->val>root->val)//找到第一对逆序的两个数 { if(p1==NULL)//先找到p1 { p1=pre; p2=root; } else//如果找到第二对逆序的两个数则是p2 { p2=root; } } pre=root;//先将pre初始化为root helper(root->right); } void recoverTree(TreeNode *root) { if(root==NULL) return; pre=p1=p2=NULL; helper(root); int temp; temp=p1->val; p1->val=p2->val; p2->val=temp; return; } };
Leetcode--Recover Binary Search Tree,布布扣,bubuko.com
Leetcode--Recover Binary Search Tree
标签:des style http color os io for ar
原文地址:http://blog.csdn.net/longhopefor/article/details/38444695