zoukankan      html  css  js  c++  java
  • 【剑指offer】54.二叉树的第K大节点

    54.二叉树的第K大节点

    面试题54. 二叉搜索树的第k大节点

    难度简单21

    给定一棵二叉搜索树,请找出其中第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
    
    //中序遍历为顺序的 右根左就位 从高到低 k记录的是第几大元素。当k==0就可以直接返回。
        int res,k;
        public int kthLargest(TreeNode root, int k) {
            if(root == null)    return -1;
            this.k = k;
            dfs(root);
            return res;
        }
    
        private void dfs(TreeNode root){
            if(root == null)    return;
            dfs(root.right);
            if(k<0) return;
            if(--k == 0)    res = root.val;
            dfs(root.left);
        }
    
  • 相关阅读:
    集群资源队列监控:Grafana
    1
    3月9号
    jmx
    日常笔记
    nsenter命令简介
    一天2小时
    postgresql Centos7部署
    笔记5
    1
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860600.html
Copyright © 2011-2022 走看看