博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Trim a Binary Search Tree
阅读量:4840 次
发布时间:2019-06-11

本文共 1491 字,大约阅读时间需要 4 分钟。

原题链接在这里:

题目:

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 1:

Input:     1   / \  0   2  L = 1  R = 2Output:     1      \       2

Example 2:

Input:     3   / \  0   4   \    2   /  1  L = 1  R = 3Output:       3     /    2     / 1

题解:

在[L, R]区间外trim. 

Recursive call, stop condition, root == null, return root.

如果root.val 小于 L, 则root右侧有可能在区间内,返回trim后的 root.right. 

如果root.val 大于 R, 则root左侧有可能在区间内,返回trim后的root.left.

如果root.val在区间内, 则对左右两侧分别trim后return root.

Time Complexity: O(n), n 是node数.

Space: O(logn), stack space.

AC Java:

1 /** 2  * Definition for a binary tree node. 3  * public class TreeNode { 4  *     int val; 5  *     TreeNode left; 6  *     TreeNode right; 7  *     TreeNode(int x) { val = x; } 8  * } 9  */10 class Solution {11     public TreeNode trimBST(TreeNode root, int L, int R) {12         if(root == null){13             return root;14         }15         16         if(root.val < L){17             return trimBST(root.right, L, R);18         }19         if(root.val > R){20             return trimBST(root.left, L, R);21         }22         23         root.left = trimBST(root.left, L, R);24         root.right = trimBST(root.right, L, R);25         26         return root;27     }28 }

 

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/7513171.html

你可能感兴趣的文章
SQL Server系统表sysobjects介绍与使用
查看>>
【转】C/C++除法实现方式及负数取模详解
查看>>
传输层协议
查看>>
Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
查看>>
例题---
查看>>
平安度过2012,新的一年新的希望
查看>>
MySQL prompt命令
查看>>
hbase读取文件
查看>>
2周《机电传动控制》学习笔记
查看>>
DS博客作业06--图
查看>>
安装--->Tomcat监控工具Probe
查看>>
Java网络编程(URL&URLConnection)
查看>>
Java NIO学习笔记---I/O与NIO概述
查看>>
java接口中的成员方法和成员变量
查看>>
java中构造函数的特点
查看>>
Qt5:窗口背景色的设置
查看>>
NFC初步接触
查看>>
Puppet常识梳理
查看>>
iframe内联网页的应用
查看>>
Appium + Python -------------元素定位
查看>>