这道题真的很拿人
二叉搜索树,做边一直递归,
要有一个前驱pre节点。 递归到上一级的时候 root 就是pre的后继。
最终若返回pre,那么是降序排列,题干要求升序,故保存第一个节点,返回第一个节点。
【多练,多尝试。】
public class Solution {
TreeNode pre= null;
TreeNode root=null;
public TreeNode Convert(TreeNode pRootOfTree) {
if(pRootOfTree ==null) return null;
Convert(pRootOfTree.left);
if(root == null){
root=pRootOfTree;
}
if(pre!=null){
pRootOfTree.left=pre;
pre.right=pRootOfTree;
}
pre=pRootOfTree;
Convert(pRootOfTree.right);
return root;
}
}
京公网安备 11010502036488号