题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
public class Solution {
TreeNode lastOfList=null;//由于Java值传递机制,这两个变量不可以作为方法的参数传入
TreeNode head=null;//我们的处理方式是将它们作为类变量
public TreeNode Convert(TreeNode pRootOfTree) {
if(pRootOfTree==null){
return null;
}
convert(pRootOfTree);
return head;
}
public void convert(TreeNode pRootOfTree){
if(pRootOfTree!=null){
convert(pRootOfTree.left);
pRootOfTree.left=lastOfList;
if(lastOfList!=null){
lastOfList.right=pRootOfTree;
}
else{
System.out.println(pRootOfTree.val);
head=pRootOfTree;
}
lastOfList=pRootOfTree;
convert(pRootOfTree.right);
}
}
}