是差点运气,可我一直在努力!
当前进程:
- 开始时间:2020.6.27
- 结束时间:undefined
GitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode
1、题目要求
( LeetCode-第450题 ) 删除二叉搜索树中的节点
2、解题思路
方法:递归
主要步骤:
1、找到和key值相等的节点
2、删除该节点(四种情况):
2.1、无左子树,无右子树 -- 说明是叶子节点,直接删除即可
2.2、有左子树,无右子树 -- 用左子树直接替换该节点
2.3、无左子树,有右子树 -- 用右子树直接替换该节点
2.4、有左子树,有右子树 -- 用左子树的最大值节点替换该节点 或 用右子树的最小值节点替换该节点
注意:以上删除方式均需保证中序遍历的输出序列为升序
2.1、JavaScript Solution
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @par