题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
TreeNode headNode = null;
TreeNode preNode = null;
public TreeNode Convert(TreeNode pRootOfTree) {
convertc(pRootOfTree);
return headNode;
}
public void convertc(TreeNode pRootOfTree){
if(pRootOfTree==null)
return;
convertc(pRootOfTree.left);
if(headNode==null){
headNode=pRootOfTree;
preNode=pRootOfTree;
}else{
preNode.right = pRootOfTree;
pRootOfTree.left=preNode;
preNode=pRootOfTree;
}
convertc(pRootOfTree.right);
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806213430379.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxlX3l6eA==,size_16,color_FFFFFF,t_70)