Leetcode--Recover Binary Search Tree
来源:互联网 发布:网络语打卡的意思 编辑:程序博客网 时间:2024/06/06 02:07
Problem Description:
Two elements of a binary search tree (BST) are swapped by mistake.
Recover the tree without changing its structure.
Note:A solution using O(n) space is pretty straight forward. Could you devise a constant space solution?
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
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; }};
0 0
- LeetCode: Recover Binary Search Tree
- LeetCode: Recover Binary Search Tree
- [Leetcode] Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- [Leetcode] Recover Binary Search Tree
- [leetcode] recover binary search tree
- LeetCode -- Recover Binary Search Tree
- [LeetCode]Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- LeetCode:Recover Binary Search Tree
- [Leetcode]Recover Binary Search Tree
- Leetcode: Recover Binary Search Tree
- LeetCode-Recover Binary Search Tree
- [leetcode] Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- 【Leetcode】Recover Binary Search Tree
- Leetcode Recover Binary Search Tree
- LeetCode | Recover Binary Search Tree
- UVa11478 - Halum(差分约束)
- contos安装lnmp
- Qt Quick 中QMessageBox Class的使用学习笔记
- Java命名和目录接口——JNDI
- C语言之函数
- Leetcode--Recover Binary Search Tree
- C++ 纯socket 模拟登录37.com【过验证码】
- Codeforces 300C Beautiful Numbers lucas求组合数逆元
- BOJ 2014新生暑假个人排位赛08 整合
- C/C++中static关键字作用总结
- operator 类型转换及重载
- Android控件:ListView与Adapter
- C++中的函数指针和函数对象总结
- C语言之循环语句