二叉搜索树的第k个结点
来源:互联网 发布:国际机票 知乎 编辑:程序博客网 时间:2024/06/05 05:48
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
if(pRoot == null) return null; //由于是搜索二叉树,取出所有值 ArrayList<TreeNode> allList = new ArrayList<TreeNode>(); ArrayList<TreeNode> layerList = new ArrayList<TreeNode>(); layerList.add(pRoot); while(layerList.size() != 0){ ArrayList<TreeNode> tempList = new ArrayList<TreeNode>(); for(TreeNode treeNode : layerList){ allList.add(treeNode); if(treeNode.left != null) tempList.add(treeNode.left); if(treeNode.right != null) tempList.add(treeNode.right); } layerList = tempList; } if(k > allList.size() || k <= 0) return null; //取值排序 for(int i = 0;i < allList.size() - 1;i ++){ for(int j = 0;j < allList.size() - i - 1;j ++){ if(allList.get(j).val > allList.get(j + 1).val){ TreeNode tempNode = allList.get(j); allList.set(j, allList.get(j + 1)); allList.set(j + 1, tempNode); } } } //list已经排序结束 //打印 for(TreeNode treeNode : allList){ System.out.println(treeNode.val); } return allList.get(k - 1);
0 0
- 【二叉树】二叉搜索树的第k个结点
- 二叉搜索树第k个结点
- 【树14】二叉搜索树的第k个结点
- 剑指offerr--二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 《剑指offer》二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 剑指offer:二叉搜索树的第k个结点
- 58.二叉搜索树的第k个结点
- [剑指offer]二叉搜索树的第k个结点
- 二叉搜索树的第k个结点
- 二叉搜索树的第K个结点
- 二叉搜索树的第k个结点
- 为什么会文不对题
- alter table新增字段操作究竟有何影响?(下篇)
- mysql 左外连接 右外链接 内连接
- linux进程状态D
- 云安全部分概念解析
- 二叉搜索树的第k个结点
- 关于My97DatePicker插件的使用:
- 圆图片 github项目 CircleImageView【常用】
- <LeetCode><Easy> 118 Pascal's Triangle
- css3 多列显示属性column
- 使用Apple ID免费真机调试
- Spring中的p标签
- 使用ImageIO库缩放图片
- 【前端学习】javascript面向对象编程(继承和复用)