🚅【leetcode】669. 修剪二叉搜索树

🚀题目
leetcode原题链接
💥leetcode代码模板
/**
* 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
* @param {number} low
* @param {number} high
* @return {TreeNode}
*/
var trimBST = function(root, low, high) {
};
🚀思路
root.val > high
,返回递归左子树的结果root.val < low
,返回递归右子树的结果
🥯root
满足条件,即要返回root
,返回前需要操作一波:
root.left = 递归(root.left,low , high)
root.right = 递归(root.right , low , high)
💻代码
var trimBST = function(root, low, high) {
if(!root) return root
if(root.val > high) return trimBST(root.left , low , high)
else if(root.val < low) return trimBST(root.right, low , high)
else {
root.left = trimBST(root.left , low , high)
root.right = trimBST(root.right , low , high)
return root
}
};
🍪总结
懒得总结了,这类题型一把梭就好👴,递归的过程把遍历二叉树和修剪一起做,唯手熟尔…