[LeetCode]Recover Binary Search Tree
来源:互联网 发布:济宁软件开发 编辑:程序博客网 时间:2024/05/26 20:23
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 \ 5The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}"
.中序遍历,用一个List存储每个节点的位置,然后双指针一个从左往右,一个从右往左找到连个错误的位置,然后交换连个节点的值。
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {List<TreeNode> list = new ArrayList<>(); public void recoverTree(TreeNode root) { mid(root); int left = -1; int right = -1; for(int i=0;i<list.size()-1;i++){ if(list.get(i).val>list.get(i+1).val){ left = i; break; } } for(int j=list.size()-1;j>0;j--){ if(list.get(j).val<list.get(j-1).val){ right = j; break; } } int temp = list.get(left).val; list.get(left).val = list.get(right).val; list.get(right).val = temp; } private void mid (TreeNode root){ if(root==null) return; mid(root.left); list.add(root); mid(root.right); }}
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
- 游戏引擎与框架
- 欧拉函数&莫比乌斯反演
- iOS开发中修改状态栏颜色
- github上的开源项目中gif图片的制作软件
- activiti designer源码的研究(四) 之servicetask调用webservice(example)
- [LeetCode]Recover Binary Search Tree
- 2015.02.01
- SSH整合——架构的历史(三)
- 实现数组插入排序并输出
- Single Number && Single Number II && Factorial Trailing Zeroes && Pow(x, n) && Add Two Numbers
- 简直醉了,OL硬是无法通过?我只个菜,被这样玩啊?
- 稀疏矩阵十字链表表示
- 分享WMRNET-III超低功耗水表、燃气表无线抄表系统 - APPCON
- cxGrid动态创建冻结列