用时 : 没做出来
没做出来的主要原因是一直想着怎么用栈来做,写到后面看栈的答案看着看着发现递归最简单
递归
思路很简单,首先写出来怎么插入子节点
- 如果比父节点小,且父节点左为空,直接做左节点
- 如果比父节点大,且父节点右为空,直接做右节点
- 比父节点小,则父节点赋值为父节点的左节点,回到 1
- 比父节点大,则父节点赋值为父节点的右节点,回到1
遍历整个数组,一个个插入即可得到结果
1 | var bstFromPreorder = function(preorder) { |
失败会设下陷阱,没有胜利会发出邀请
用时 : 没做出来
没做出来的主要原因是一直想着怎么用栈来做,写到后面看栈的答案看着看着发现递归最简单
思路很简单,首先写出来怎么插入子节点
遍历整个数组,一个个插入即可得到结果
1 | var bstFromPreorder = function(preorder) { |