今際の国の呵呵君
Saturday, December 2, 2017
[LeetCode]Recover Binary Search Tree
Inorder traversal,因为中序遍历保证得到从小到大的序列,我们就可以知道是哪两个节点需要交换。比如:
中序遍历的结果是132,我们可以得知2和3需要交换
中序遍历的结果是15342,我们可以得知5和2需要交换
策略就是,发现reverse pair之后,就假定这两个是需要交换的node1和node2,对应1的情况。如果发现了第二对reverse pair,那么需要交换的就是第一对里的node1和第二对里的node2,时间复杂度O(n),常数空间,代码如下:
No comments:
Post a Comment
Newer Post
Older Post
Home
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment