leetcode[230]:Kth Smallest Element in a BST
来源:互联网 发布:淘宝订单多长时间失效 编辑:程序博客网 时间:2024/05/16 02:14
Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.
Note:
You may assume k is always valid, 1 ≤ k ≤ BST’s total elements.
Follow up:
What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine?
Hint:
1.Try to utilize the property of a BST.
2.What if you could modify the BST node’s structure?
3.The optimal runtime complexity is O(height of BST).
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int kthSmallest(struct TreeNode* root, int k) { struct TreeNode stack[100]; struct TreeNode *tmp; int i=0; int l=0; tmp=root; while(1) { if(tmp->left) { stack[i++] = *tmp; stack[i-1].left=NULL; tmp=tmp->left; continue; } if(++l==k) return tmp->val; if(tmp->right) { tmp=tmp->right; continue; } if(i==0) break; tmp = &stack[--i]; }}
根据中序遍历,遍历到第k个元素即可。
0 0
- #leetcode#Kth Smallest Element in a BST
- leetcode--Kth Smallest Element in a BST
- Leetcode|Kth Smallest Element in a BST
- [leetcode] Kth Smallest Element in a BST
- 【LeetCode】Kth Smallest Element in a BST
- LeetCode Kth Smallest Element in a BST
- 【leetcode】Kth Smallest Element in a BST
- LeetCode Kth Smallest Element in a BST
- leetcode: Kth Smallest Element in a BST
- Leetcode: Kth Smallest Element in a BST
- [LeetCode] Kth Smallest Element in a BST
- [LeetCode]Kth Smallest Element in a BST
- [Leetcode]Kth Smallest Element in a BST
- leetcode--Kth Smallest Element in a BST
- 【leetcode】Kth Smallest Element in a BST
- [leetcode] Kth Smallest Element in a BST
- [Leetcode]Kth Smallest Element in a BST
- Leetcode: Kth Smallest Element in a BST
- 深入探索Linux coredump调试技巧
- 我们正是上帝想要变成的模样,所以珍惜这一生吧
- 浮点数字符串转换成浮点数实现(2)
- mybatis 的逆向工程
- 链式线性表实现
- leetcode[230]:Kth Smallest Element in a BST
- java 泛型详解(普通泛型、 通配符、 泛型接口,泛型数组,泛型方法,泛型嵌套)
- Deep Learning(深度学习)资料
- J114班7月28日
- 深入分析java序列化
- 【Leetcode】Lowest common treenode in binary tree
- Fence Repair(POJ--3253
- Linux交叉编译工具
- 黑马程序员——高新技术---Java基础-IO流