题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5
import java.util.*;
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public TreeNode pre=null;
public void midTraverse(TreeNode current){
if(current!=null){
//先遍历到左子树的最左结点
midTraverse(current.left);
//当前结点的前驱指向前结点
current.left = pre;
//当前结点不是空的时候 前结点的后驱就是当前结点,
if(pre!=null){
pre.right = current;
}
//将前结点赋值为当前结点,
//遍历右子树
pre =current;
midTraverse(current.right);
}
}
public TreeNode Convert(TreeNode pRootOfTree) {
if(pRootOfTree==null)return null;
midTraverse(pRootOfTree);
while(pRootOfTree.left!=null){
pRootOfTree = pRootOfTree.left;
}
return pRootOfTree;
}
}
凡岛公司福利 613人发布