微商产品做网站,如何做自己个人网站,开通网站的请示,免费申请邮箱163669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣#xff08;LeetCode#xff09; 这里本身不难#xff0c;更多的是递归的技巧#xff0c;在脑子里模拟一遍递归逻辑#xff0c;记忆好模板就好了。 class Solution {public TreeNode trimBST(TreeNode root, int low, int… 669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣LeetCode 这里本身不难更多的是递归的技巧在脑子里模拟一遍递归逻辑记忆好模板就好了。 class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if(rootnull) return null;if(root.vallow){return trimBST(root.right,low,high);}if(root.valhigh){return trimBST(root.left,low,high);}root.left trimBST(root.left,low,high);root.right trimBST(root.right,low,high);return root;}
} 108.将有序数组转换为二叉搜索树 注意一下区间的定义就好了很简单的题 正常的构造就行因为数组本身就是有序的找中点去构造即符合二叉搜索树 class Solution {public TreeNode sortedArrayToBST(int[] nums) {return travel(nums,0,nums.length-1);}private TreeNode travel(int [] nums,int left,int right){if(leftright) return null;int mid (leftright)1;TreeNode root new TreeNode(nums[mid]);root.left travel(nums,left,mid-1);root.right travel(nums,mid1,right);return root;}
} 538.把二叉搜索树转换为累加树 538. 把二叉搜索树转换为累加树 - 力扣LeetCode 记住二叉树中双指针以及右中左的遍历顺序就好了soEasy; class Solution {private TreeNode pre null;public TreeNode convertBST(TreeNode root) {if(rootnull) return null;convertBST(root.right);if(pre!null){root.val root.valpre.val;}pre root;convertBST(root.left);return root;}
} 总结 我的总结就是一般二叉树用后序来做到孩子节点信息穿给根节点 二叉搜索树用中序利用自增特效 求深度这些用前序 但是涉及一些构造比如二叉搜索树或者一些不用管遍历顺序的题目就淡化一下遍历顺序的思想以免只顾着遍历顺序而影响我们做题的思考 卡哥的总结 代码随想录 (programmercarl.com)