又是我们的老朋友二叉搜索树
代码如下:
步骤大概是这个样子:
1.反复调用var left = Convert(pRootOfTree.left);最后left为3节点
2.建立3,4节点之间的关系
if(left){
p.right = pRootOfTree;
pRootOfTree.left = p;
}
3.建立4,5节点的关系
4.while(p!=null&&p.right!=null){p = p.right;}
p为9节点
建立5,9之间的关系
5.后面都差不多,不在赘述
function Convert(pRootOfTree)
{
// write code here
if(pRootOfTree == null){return null;}
if(pRootOfTree.right == null && pRootOfTree.left == null) {return pRootOfTree;}
var left = Convert(pRootOfTree.left);
var p =left;
while(p!=null&&p.right!=null){p = p.right;}
if(left){
p.right = pRootOfTree;
pRootOfTree.left = p;
}
var right = Convert(pRootOfTree.right);
if(right){
right.left = pRootOfTree;
pRootOfTree.right = right;
}
return left!==null?left:pRootOfTree;
}