牛客网刷题之二叉搜索树的第k个结点
来源:互联网 发布:日语等级考试 知乎 编辑:程序博客网 时间:2024/06/17 23:58
题目描述:
解题思路:
中序遍历二叉搜索树就是从小到大排列的。所以,中序遍历,找到顺序为k的返回即可。
递归实现:
int count = 0; TreeNode KthNode(TreeNode pRoot, int k) { TreeNode resNode = null; if (pRoot != null) { resNode = KthNode(pRoot.left, k); if (resNode != null) { return resNode; } if (++count == k) { return pRoot; } resNode = KthNode(pRoot.right, k); if (resNode != null) { return resNode; } } return null; }
非递归:
TreeNode KthNode(TreeNode pRoot, int k) { if (pRoot == null || k <= 0 ){ return null; } int count = 0; Stack<TreeNode> stack = new Stack<>(); while(pRoot != null || ! stack.isEmpty()){ if(pRoot != null){ stack.push(pRoot); pRoot = pRoot.left; }else{ pRoot = stack.pop(); if(++ count == k){ return pRoot; } pRoot = pRoot.right; } } return null; }
ac结果:
0 0
- 牛客网刷题之二叉搜索树的第k个结点
- 【二叉树】二叉搜索树的第k个结点
- 二叉搜索树第k个结点
- 【树14】二叉搜索树的第k个结点
- 剑指offerr--二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 《剑指offer》二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 剑指offer:二叉搜索树的第k个结点
- 58.二叉搜索树的第k个结点
- [剑指offer]二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第K个结点
- Unity3D噪声
- Android连接unity profiler调试
- Spring MVC Handler Interceptor
- 直接编辑修改PDF文件的方法
- Java中的关键字
- 牛客网刷题之二叉搜索树的第k个结点
- Qt中自定义MessageBox提示框
- C#调用URL接口方法
- 优先队列 <priority_queue>
- 解决div设置浮动,高度消失
- 输入一串未知个数的数据直到EOF(-1)停止和键盘输入文件结尾符EOF
- Android开启手电筒功能(完美适配Android4x,5x,6x)
- 百度地图
- 青岛区域赛总结