LeetCode 230. Kth Smallest Element in a BST(非递归中序遍历二叉树)

Posted ITAK

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 230. Kth Smallest Element in a BST(非递归中序遍历二叉树)相关的知识,希望对你有一定的参考价值。

因为这是一棵二叉搜索树,所以找它的第 k k k 小值,就是这棵二叉搜索树的中序遍历之后的第 k k k 个数,所以只需要将这棵树进行中序遍历即可,下面代码是非递归形式的二叉树中序遍历。
代码如下:

/**
 * Definition for a binary tree node.
 * struct TreeNode 
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) 
 * ;
 */
class Solution 
public:
    int kthSmallest(TreeNode* root, int k) 
        TreeNode* now = root;
        stack<TreeNode*> s;
        while(!s.empty() || now) 
            while(now) 
                s.push(now);
                now = now->left;
            
            now = s.top();
            s.pop();
            k--;
            if(k==0) return now->val;
            now = now->right;
        
    
;

以上是关于LeetCode 230. Kth Smallest Element in a BST(非递归中序遍历二叉树)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 230. Kth Smallest Element in a BST

Leetcode 230. Kth Smallest Element in a BST

Leetcode 230: Kth Smallest Element in a BST

leetcode 230. Kth Smallest Element in a BST

[Leetcode] Binary search/tree-230. Kth Smallest Element in a BST

[LeetCode] 230. Kth Smallest Element in a BST