Kth Smallest Element in a BST

来源:互联网 发布:乐乎公寓公益西桥 编辑:程序博客网 时间:2024/06/04 23:33

解题思路:按树的中序遍历的方式,利用栈实现,第k个出栈的节点即是所求的。

Java代码实现:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public int kthSmallest(TreeNode root, int k) {        TreeNode p=new TreeNode(0);        p=root;        Stack sk=new Stack();        sk.push(p);        while(p.left!=null){            sk.push(p.left);            p=p.left;        }        int i=0;        while(!sk.isEmpty()){            TreeNode q=new TreeNode(0);            q=(TreeNode)sk.pop();            i++;            if(i==k) return q.val;            if(q.right!=null) {                p=q.right;                sk.push(p);                while(p.left!=null){                    sk.push(p.left);                     p=p.left;                }            }        }        return 0;    }}

原题题目:https://leetcode.com/problems/kth-smallest-element-in-a-bst/


0 0
原创粉丝点击