leetcode_Kth Smallest Element in a BST
来源:互联网 发布:淘宝店铺口令怎么生成 编辑:程序博客网 时间:2024/06/05 13:23
描述:
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:
Try to utilize the property of a BST.Show More Hint
思路:
1.一般涉及到树的问题用树的遍历方式来解决的可能性比较大,或者就是递归了
2.对于本题,一种很朴素的解决方式就是不是二叉查找树么,中序遍历时不就是一个有序的序列么,直接上中序遍历,遍历到第K个数即是本题要求的Kth Smallest Element in a BST
代码:
public int kthSmallest(TreeNode root, int k) { int count=0; Stack<TreeNode>st=new Stack<TreeNode>(); st.push(root); TreeNode top=null; while(!st.empty()) { top=st.peek(); while(top.left!=null) { st.push(top.left); top=top.left; } while(top.right==null) { count++; if(count==k) return top.val; st.pop(); if(!st.empty()) top=st.peek(); else break; } if(!st.empty()) { count++; if(count==k) return top.val; st.pop(); st.push(top.right); } } return -1; }
0 0
- leetcode_Kth Smallest Element in a BST
- #leetcode#Kth Smallest Element in a BST
- 230.Kth Smallest Element in a BST
- leetcode--Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- Leetcode|Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- [leetcode] Kth Smallest Element in a BST
- 【LeetCode】Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- LeetCode Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- 【leetcode】Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- LeetCode Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- C - Colorful Rainbows----(2015 summer training #4 (Qualifying))
- JAVA中的static用法
- win10初体验
- qt快捷键总结
- iOS UI07_界面传值
- leetcode_Kth Smallest Element in a BST
- Android Volley框架的几种post提交请求方式(xml->xml json->json xml->json)
- 三星苹果盛极而衰,国产手机迎来分化
- thinkcmf中编辑器上传图片 去掉前面域名问题
- 常用的企业英文缩写称谓
- java命令模式
- 线性表插入和删除——程序实例
- H - Hurdles of 110m----(2015 summer training #4 (Qualifying))
- [leetcode-80]Remove Duplicates from Sorted Array II(C)