二叉查找树的特性:
左节点比其父节点要小,右节点比其父节点要大。
原题是:
12
8 15
6 9 13 16
变为链表: 6=8=9=12=13=15=16
所以,首先想到中序遍历
中序遍历代码:
void visit(Node node){
visit(node.left());
println("node" + node.val());
visit(node.right());
}
改进一下即可:
设置一个变量,记录上一个node,再设置一个变量,记为链表头:
Node pre;
Node head;
void visit(Node node){
visit(node.left());
node.left = pre;
if(pre == null){
head = node;
}else{
pre.right = node;
}
pre = node;
visit(node.right());
}