50-42

news/2025/2/7 13:04:42/

50题 第42天 二叉搜索树中第K小的元素

  • 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
  • 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
  • 链接: 力扣.
  • 我的代码如下:
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {List<Integer> list = new ArrayList();public void dfs(TreeNode root){if(root == null)return ;dfs(root.left);list.add(root.val);dfs(root.right);}public int kthSmallest(TreeNode root, int k) {if(root == null) return -1;dfs(root);return list.get(k-1);}
}

运行结果

在这里插入图片描述

  • 写着道题的时候比较谨慎,特地去查了一下二叉搜索树和二叉树有没有什么不同,然后发现二叉搜索树是有明确定义的(二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。来源:百度百科),这样一来,如果按照中序遍历的方法,按“左根右”的顺把二叉树变成list,得到的就是顺序排列的。这样我们就不难得到第k小的数了。注意,空树也是二叉搜索树,在这道题里要单独分类。

http://www.ppmy.cn/news/670210.html

相关文章

42点问题(枚举)

枚举要思维清晰&#xff0c;一般来说遇见数学问题的解答&#xff0c;没有充足的数学理论会难以下手&#xff0c; 枚举也是一门技巧&#xff0c;但是数据量一大时&#xff0c;TLE是必然的&#xff0c;对于oi赛制&#xff0c;捞部分的分是需要技巧的 题目描述 众所周知在扑克牌…

43

package com.haizhitao.awt;import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame;public class MyFlow {private Frame frame;private Button button1, button2, button3;public void go(){frame new Frame("Flow Layout");//使用Layout替换…

数学关系式2x=10的python表达式为_24

【简答题】(6.4)请说明casode放大器、CD-CS(CC-CE)、CD-CE放大器及达林顿电路的特征? 【单选题】切除肾上腺引起动物死亡的原因,主要是由于缺乏 【单选题】为了给整形变量x、y、z赋初值,下面正确的Python赋值语句是: 【单选题】10 【单选题】Questions 3 and 4 will be based …

42 点问题

枚举每次运算后的结果与下一次的结果运算 #include <iostream> #include <vector> using namespace std;int a[10]; vector <int> ans[10];int main(){for(int i0; i<6; i){char c;cin>>c;if(cA) a[i]1;else if(cJ) a[i]11;else if(cQ) a[i]12;els…

04 23

全选单选按钮 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…

random_state = 42

随机数种子 随机种子&#xff08;Random Seed&#xff09;是计算机专业术语&#xff0c;一种以随机数作为对象的以真随机数&#xff08;种子&#xff09;为初始条件的随机数。一般计算机的随机数都是伪随机数&#xff0c;以一个真随机数&#xff08;种子&#xff09;作为初始条…

42.zip

最近看linux的解压缩&#xff0c;无意间了解到了一个和压缩率相关的小故事——42.zip 一般我们使用压缩工具的时候&#xff0c;都会用到无损压缩技术&#xff0c;对于无损压缩&#xff0c;算法非常重要&#xff0c;不同的算法实现 的压缩率和速度有很大差别&#xff0c;主流的算…