二叉搜索树与双向链表

很遗憾没有自己想到解决的办法 还是借鉴了答案的思维

本题考查的是我们对一些常规名词(搜索树等)这些的信息提取能力

首先便是中序遍历搜索树的顺序节点访问 与题目要求相同(从此处入手)

还有就是如何构建两个节点之间的联系

错误思想
原树的前驱指针不用替换 传入参数的形参调用问题

var treeToDoublyList = function(root) {
if(!root)return null;
   let pre=[];
   def(root,pre);
   while(root.left){
       root=root.left
   }
   root.left=pre[0];
   pre[0].right=root
   return root; 
};
var def= function(currentnode,pre){
    if(currentnode==null)return;//尾节点不操作
    def(currentnode.left,pre);
    if(pre.length==0) {pre[0]=currentnode}
    else{
        currentnode.left=pre[0];
        pre[0].right=currentnode;//两相邻节点连接
        pre[0]=currentnode;
    }
    def(currentnode.right,pre)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值