这道题真的很拿人
二叉搜索树,做边一直递归,
要有一个前驱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; } }