二叉搜索树转排序双向链表 思想 中序遍历,即可完成从小到大重点是。根节点的left是其左子树的最右节点,此节点为左子树遍历的最后一个节点,因此利用last指针更新保存当前遍历到的节点,和root连接即可。 public class Solution { TreeNode last = null; TreeNode realHead = null; public TreeNode Convert(TreeNode pRootOfTree) { ConvertSub(pRootOfTree); return realHead; } private void ConvertSub(TreeNode pRootOfTree) { if(pRootOfTree==null) return; //找到最左边 ConvertSub(pRootOfTree.left);//左 if (last == null) { // 最左边节点是头,最小值 last = pRootOfTree; realHead = pRootOfTree; //返回头 } else { //中,连接上次遍历节点last和root last.right = pRootOfTree; pRootOfTree.left = last; last = pRootOfTree; //last每次都记录上次最后遍历的 } ConvertSub(pRootOfTree.right); //右 } }