jtracydy的博客

向目标努力就是幸福.....

leecode 230. Kth Smallest Element in a BST

扯犊子:我不乐意利用空间写这种树的遍历,尤其是后续遍历。有兴趣的可以考虑一下二叉查找树的性质进行寻找第k个最小值。

题意:在二叉树中寻找最小的第K个元素。

思路:我遍历了二叉树,将所有的数据存放到集合中,然后排序,直接利用集合的get()方法就取出来数了。

public int kthSmallest(TreeNode root, int k) {
		if (root == null)
			return 0;
		List<Integer> list = new ArrayList<Integer>();
		getList(root, list);
		//排序
		Collections.sort(list);
        //取结果,题意是结果一定会存在,所以直接取就行了
		return list.get(k - 1);
	}
    //遍历二叉树,将数据存放到集合中
	public void getList(TreeNode root, List<Integer> list) {
		if (root == null)
			return;
		list.add(root.val);
		getList(root.left, list);
		getList(root.right, list);
	}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jtracydy/article/details/52371249
个人分类: 算法
上一篇TCP拥塞控制-慢启动、拥塞避免、快重传、快启动
下一篇动态规划-钢条切割--DP_1
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭