Second largest node in the BST
2024-09-01 13:32:23
Find the second largest node in the BST
分析:
如果root有右节点,很明显第二大的node有可能在右子树里。唯一不满足的条件就是右子树只有一个node. 这个时候root就是第二大node. 所以我们需要把root(可能是第二大node)也传下去。
如果root没有右节点,我们只要找左子树的最大node就可以了。
public class Solution {
public Node secondLargest(Node root) {
return helper(root, null);
} private Node helper(Node root, Node previous) {
if (root.right != null) {
return helper(root.right, root);
} if (root.left != null) {
return rightMost(root.left);
} return previous;
} private Node rightMost(Node node) {
while (node.right != null) {
node = node.right;
}
return node;
}
」
最新文章
- linux的sysctl基本配置
- Scalaz(46)- scalaz-stream 基础介绍
- MvvmLight ToolKit .Net4.5版本 CanExecute不能刷新界面bug
- usb设备驱动描述,王明学learn
- virtual box ubuntu卡在开机光标
- asp.net core StaticFiles中间件修改wwwroot
- jeewx的使用_01 接入和验证
- Java_io体系之PipedWriter、PipedReader简介、走进源码及示例——14
- [转]MySQL 5.6 全局事务 ID(GTID)实现原理(一)
- HDU1166 敌兵布阵(树状数组)
- mongodb- Java API 查询操作
- 【单例模式】java实现
- 解决mysql表不能查询修改删除等操作并出现卡死
- CodeBlocks无法调试的解决方法
- CDR锁定方式
- html基本进阶知识【转】
- java笔记 -- java变量与常量的声明
- SQL Server 数据类型映射(转载)
- Vue-嵌套路由
- 两个非常好的bootstrap模板,外送大话设计模式!