剑指 Offer 54. 二叉搜索树的第k大节点
题目描述
给定一棵二叉搜索树,请找出其中第 k
大的节点的值。
输入输出
1 2 3 4 5 6 7
| 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4
|
基本思路
中序遍历之后取倒数第k个数即为结果
java实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
class Solution { LinkedList<Integer> res = new LinkedList<>(); public int kthLargest(TreeNode root, int k) { inOrder(root); int num = res.get(res.size()-k); return num; }
public void inOrder(TreeNode root){ if(root == null){ return; } inOrder(root.left); res.add(root.val); inOrder(root.right); } }
|