junbing
zhaoyubao
zhaoyubao
source里面看,需要打断点
幕布斯046348
中序遍历的顺序就是: 每次遍历一个节点时,先获取左子节点的值,再读取当前节点的值,最后是右子节点;
因为左右子节点可能还有子元素,所以要递归调用“inOrderTraverseNode”这个方法,获取子元素的值;“callback”方法则是将获取到的值传递到外部;
xianqi
精慕门6137455
HBuilder
慕姐1218095
//中序时应该打出来的是node的key 本来是应该打出4 的却把整个node打印出来了.
//说明在最后一个(node.left && node.right)同时存在判断中 赋值出现错误
//本应该是
let aux = findMinNode(node.right);
node.key = aux.key;
...
// 写成了
let aux = findMinNode(node.right);
node = aux.key;
...
//因为本身Object是引用类型数据. 所以node(4) 的left right就都是null
{
key:8
left:{
key: { //错误位置 ,本来应该是Number(4), 现在变成Node(4)了
key:4,
left:...,
right:...
},
left:...,
right:...
}
right:{
key:10,
left:...,
right:...
}
}
慕粉3555700
第一 判断是否等于null 用=== 不是 ==
第二node.left = newNode.key;不对 是node.left = newNode;
同理right也是
蒹葭苍沧
并非完全复制,具体内容是调整了一下顺序,前序:abc,中序:bac,后续:bca
蒹葭苍沧
先理解执行栈和递归可能会好一点
蒹葭苍沧
谢谢哈,我试试
蒹葭苍沧
key表示的是节点node的值,比如根节点的值8,叶子节点的值4,7,13等
慕少9200249
慕设计1980359
qq_慕数据1121523
取数组的第一个值作为根节点,然后后面的值都是首先和这个根节点进行对比。
慕九州0305853
没问题聪明啊
鹏啸九天
要把最终结果返回去,不然递归完就没有结果了
慕姐9082175
newNode
迎风雪舞
这是先序输出了
qq_慕桂英0025035
https://github.com/beat-the-buzzer/binary-tree.git 我自己按照老师的课程写的,顺便还用ES6重构了
qq_慕后端9495417
百度看看
慕勒4048106
=== 是类型都要对等 ,==可以帮你做转化的,不一样
NiceiceiceAyvSH
插入算法的复杂度是:n*lg(n),插入操作类似二分法,复杂度是lg(n)
毒丶
左子树最大 和 右子树最小都是可以的。
毒丶
因为要替换的当前节点必须比其所有左子树的节点值要大,同时还要比其右子数所有节点值要小,所以只能找右子数的最小节点。
Harder_
https://www.processon.com/这个官网,你可以直接搜在线画图工具,第一个就是.ProcessOn
慕婉清3746980
尽信书不如无书,重要的是知道原理,理论到手,代码都是浮云。
慕婉清3746980
找到问题了
qq_奋斗_nDHX48
背景图 需要设置背景的元素有宽高才行
少年枕边的王者梦阿
不按顺序具体指的是什么?描述清楚一点。