核心思想:二叉搜索樹的中序遍歷結果是遞增數列。
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
TreeNode head=null;
public TreeNode Convert(TreeNode pRootOfTree) {
if(pRootOfTree==null)
return null;
dfs(pRootOfTree);
while(head.left!=null)
head=head.left;
return head;
}
void dfs(TreeNode tree){
if(tree==null)
return;
dfs(tree.left);
if(head==null){
head=tree;
head.left=null;
}
else{
head.right=tree;
tree.left=head;
head=tree;
}
dfs(tree.right);
}
}