本文共 789 字,大约阅读时间需要 2 分钟。
题目描述
给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:
输入: root = [3,1,4,null,2], k = 1
3 / 1 4 2 输出: 4 示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3
5 / 3 6 / 2 4 / 1 输出: 4来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Java
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { //右子树-》根-》左子树 private int res=0,count=0; public int kthLargest(TreeNode root, int k) { dfs(root,k); return res; } public void dfs(TreeNode root,int k){ if(root==null) return; dfs(root.right,k); if(++count==k) res=root.val; dfs(root.left,k); }}