Given a binary search tree and an integer K, find K-th smallest element in BST.
For example:
Input:
2
/ \
1 3
K = 2
Output:
2
Note: Your solution musb be in-place without altering the nodes' values.
Solution 1:
in-order递归访问。
TreeNode* kth_smallest(TreeNode* root, int& k) { if(!root || k < 0 ) return nullptr; TreeNode* left = kth_smallest(root->left, k); if(left) return left; if(--k == 0) return root; return kth_smallest(root->right, k); }
Solution 2:
in-order非递归访问。
TreeNode* kth_smallest(TreeNode* root, int& k) { if(!root || k <= 0 ) return nullptr; TreeNode* node = root; stack<TreeNode *> st; while(!st.empty() || node) { if(node) { st.push(node); node = node->left; } else { TreeNode *p = st.top(); st.pop(); if(--k == 0) return p; if(p->right) node=p->right; } } return nullptr; }
相关推荐
c c语言_leetcode题解之0230_kth_smallest_element_in_a_bst
java java_leetcode题解之Kth Smallest Element in a BST.java
java java_leetcode题解之Kth Smallest Element in a Sorted Matrix.java
java入门 java_leetcode题解之215_Kth_Largest_Element_in_an_Array
c++ C++_leetcode题解之668_Kth_Smallest_Number_in_Multiplication_Table
python python_leetcode题解之215_Kth_Largest_Element_in_an_Array.py
378.Kth_Smallest_Element_in_a_Sorted_Matrix有序矩阵中第K小的元素【LeetCode单
java java_leetcode题解之Kth Smallest Number in Multiplication Table.java
703.Kth_Largest_Element_in_a_Stream数据流中的第K大元素【LeetCode单题讲解系列】
标题 "the kth smallest elem" 暗示我们要讨论的是如何在数组或集合中找到第k小的元素,这是一个常见的算法问题,在计算机科学和数据结构领域具有重要意义。描述中提到的 "Clion" 是一个流行的C/C++集成开发环境,...
在EKF-KTH项目中,"master"分支可能包含了完整的MatLab代码实现,包括了上述所有步骤的函数和脚本。用户可以下载这个压缩包,了解和学习如何在实际项目中应用EKF进行GPS跟踪。源码通常会包含详细的注释,帮助理解每...
lru cache leetcode Coding-Interview A repo for popular coding interview ...In ...In ...In ...二叉树查找/BST查找 Closest Binary Search Tree Value 二叉树查找/二叉树第K个 Kth Smallest Element In A
标题“ll-kth-from-end”通常指的是在链表数据结构中找到距离末尾指定位置的节点。这是一个常见的编程问题,特别是在面试和算法练习中。在本文中,我们将深入探讨链表的基本概念,如何解决此类问题,以及实现细节。 ...
this function returns kth smallest element in arr[l...r],using quicksort based method. without sorting all the elements in the list
纹理图像分类数据集,KTH-TIPS数据集,包含orange-peel、bread等10类纹理图像
《KTH-TIPS纹理材质数据集详解》 纹理和材质是计算机图形学中不可或缺的元素,它们赋予虚拟世界中的物体以真实感和视觉吸引力。KTH-TIPS纹理材质数据集,作为一个广泛使用的资源库,为研究者和开发者提供了丰富的...
**KTH-TIPS灰度纹理数据集详解** KTH-TIPS(KTH-Texas Institute of Photography and Shape)是一个广泛使用的图像数据库,特别是针对纹理分析和图像分类任务。这个数据集包含了大量的灰度纹理图像,是计算机视觉...
8 Kth Largest Element in an Array 35 9 Wildcard Matching 37 10 Regular Expression Matching in Java 39 11 Merge Intervals 43 12 Insert Interval 45 13 Two Sum 47 14 Two Sum II Input array is sorted 49 ...
本资料包“Select-the-Kth-number-by-3-methods.zip”聚焦于在一组随机生成的数中找到第K个最小(或最大)的数,提供了三种不同的实现方法:简单选择排序、冒泡排序和快速排序。接下来,我们将详细讨论这三种排序...
在这个名为"KTH_Simson_changes:对KTH流量求解器Simson的修改"的项目中,我们可以推测其主要目标是使用MATLAB编程语言实现傅里叶变换的动态可视化,同时可能针对KTH(瑞典皇家理工学院)的Simson流体动力学求解器...