本文主要是介绍【题解】230. 二叉搜索树中第 K 小的元素 (二叉搜索树、dfs、中序遍历),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://leetcode.cn/problems/kth-smallest-element-in-a-bst/?envType=study-plan-v2&envId=top-100-liked
class Solution {
public:int kthSmallest(TreeNode* root, int k) {stack<TreeNode*> st; // 创建一个栈用于存储树节点while (root != nullptr || !st.empty()) { // 中序遍历,直到栈为空且当前节点为nullptr// 将当前节点及其所有左子节点压入栈中while (root != nullptr) {st.push(root);root = root->left;}// 弹出栈顶节点(这是当前子树中最小的节点)root = st.top();st.pop();k--; // 处理当前节点,k减1// 如果k减到0,说明当前节点就是第k小的节点if (k <= 0)break;// 处理当前节点的右子树root = root->right;}// 返回第k小的节点值return root->val;}
};
这篇关于【题解】230. 二叉搜索树中第 K 小的元素 (二叉搜索树、dfs、中序遍历)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!