leetcode 669. Trim a Binary Search Tree
来源:互联网 发布:淘宝联盟 微信遭投诉 编辑:程序博客网 时间:2024/05/16 14:34
生命不息,奋斗不止!
–
@author stormma
@date 2017/10/20
题目
Given a binary search tree and the lowest and highest boundaries as L
and R
, trim the tree so that all its elements lies in [L, R]
(R >= L
). You might need to change the root of the tree, so the result should return the new root of the trimmed binary search tree.
Example
Input: 1 / \ 0 2L = 1R = 2Output: 1 \ 2
题目意思很简单,就是一个二叉搜索树的剪枝问题,输入一个二叉查找树的root结点,并输入L
和R
的值,要我们剪枝二叉查找树,不在L
-R
范围的结点都剪掉。我们很容易就会想到递归来做,以root
结点做示范:
比较root.val
和L
,R
,结果分以下三类情况:
root.val
<L
,那么,首先剪掉root.left
和root
,然后递归调用剪枝root.right
root.val
> R,那么首先剪掉root.right
和root
,然后递归剪枝root.left
。root.val
介于L
和R
之间,此时,我们递归剪枝root.left
和root.right
,并更新root.left
和root.right
结点。
代码实现:
package me.stormma.leetcode;/** * leetcode 669. 剪枝二叉查找树 <a href="https://leetcode.com/problems/trim-a-binary-search-tree">题目链接</a> * * @author stormma * @date 2017/10/19 */public class Question669 { /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ static class Solution { public TreeNode trimBST(TreeNode root, int L, int R) { if (root == null) { return null; } // trim left subtree and right subtree. if (L <= root.val && root.val <= R) { root.left = trimBST(root.left, L, R); root.right = trimBST(root.right, L, R); } else if (root.val < L) { root = trimBST(root.right, L, R); } else { root = trimBST(root.left, L, R); } return root; } } static class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }}
阅读全文
0 0
- leetcode 669. Trim a Binary Search Tree
- leetcode 669. Trim a Binary Search Tree
- leetcode 669. Trim a Binary Search Tree
- LeetCode 669. Trim a Binary Search Tree
- leetcode 669. Trim a Binary Search Tree
- leetcode: 669. Trim a Binary Search Tree
- <LeetCode>669. Trim a Binary Search Tree
- leetcode 669. Trim a Binary Search Tree
- LeetCode 669. Trim a Binary Search Tree
- [LeetCode] 669.Trim a Binary Search Tree
- [LeetCode] 669.Trim a Binary Search Tree
- 【LeetCode】669 Trim a Binary Search Tree
- Trim a Binary Search Tree(leetcode)
- leetcode- Add to List 669. Trim a Binary Search Tree
- 【LeetCode】669.Trim a Binary Search Tree解题报告
- LeetCode 669. Trim a Binary Search Tree (Easy)
- 669. Trim a Binary Search Tree
- 669. Trim a Binary Search Tree
- systemctl命令
- 枚举---枚举的其他应用
- JDK7中ReentrantReadWriteLock源码解析(3)
- 简单的delegate代理使用
- MYSQL面试题整合
- leetcode 669. Trim a Binary Search Tree
- 第五章数组与指针十个问题及解答
- TensorFlow的softmax regression做mnist例子
- JDK7中LockSupport源码解析
- 警惕!最新21家失信国际物流企业名录
- 2017校招总结
- Spring 整体框架
- 2017中国开源年会 COSCon'17早鸟票
- maven--3.eclipse创建工程