当前位置: 首页 > news >正文

优惠券推广网站怎么做百度关键词推广教程

优惠券推广网站怎么做,百度关键词推广教程,app首页设计模板,商标设计用什么软件题目描述 给定一棵二叉搜索树,请找出其中第 k 大的节点。 解题基本知识 二叉搜索树(Binary Search Tree)又名二叉查找树、二叉排序树。它是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子…

题目描述

给定一棵二叉搜索树,请找出其中第 k 大的节点。

在这里插入图片描述

解题基本知识

二叉搜索树(Binary Search Tree)又名二叉查找树、二叉排序树。它是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。

  • 解法一: 递归

    利用二叉搜索树的特性进行中序遍历。先遍历左节点,然后根节点,最后遍历右节点,得到的是一个递增序列,那么序列的倒序为递减序列。因此这道题我们可以转变为求二叉搜索树中序遍历倒序的第 k 个数。
    在这里插入图片描述

    /*** Definition for a binary tree node.* function TreeNode(val) {*     this.val = val;*     this.left = this.right = null;* }*/
    /*** @param {TreeNode} root* @param {number} k* @return {number}*/
    const kthLargest = (root, k) => {let res = null; // 初始化返回值// 因为需要倒序第 k 个,所以处理是右节点,根节点,然后左节点const dfs = (root) => {if (!root) return; // 如果当前节点为 null,本轮处理结束dfs(root.right); // 开始处理右节点if (k === 0) return; // k 值 为 0,代表已经处理的节点超过目标节点,本轮处理结束if (--k === 0) {// 当 k 值 减 1 为 0,表示已经到了我们想要的 k 大 节点,保存当前值res = root.val;}dfs(root.left); // 处理左节点};dfs(root); // 从初始化节点开始处理return res;
    };
    
    • 复杂度分析:
      • 时间复杂度 O(N):无论 k 的值大小,递归深度都为 N,占用 O(N) 时间。
      • 空间复杂度 O(N):无论 k 的值大小,递归深度都为 N,占用 O(N) 空间。
  • 解法二: 迭代
    思路还是二叉树的中序遍历,利用栈的方式进行遍历。
    在这里插入图片描述

    /*** Definition for a binary tree node.* function TreeNode(val) {*     this.val = val;*     this.left = this.right = null;* }*/
    /*** @param {TreeNode} root* @param {number} k* @return {number}*/
    var kthLargest = function (root, k) {if (!root) return 0;// 声明储存栈const stack = [];// 判断当前栈否有节点和当前遍历节点位置while (stack.length || root) {while (root) {// 往栈里添加当前节点,同时切换为右节点处理stack.push(root);root = root.right;}// 取出当前栈顶元素,根据添加的顺序,当前元素是栈内最大的const cur = stack.pop();k--;if (k === 0) return cur.val;// 切换为左节点处理root = cur.left;}return 0;
    };
    
    • 复杂度分析:
      • 时间复杂度 O(N):需要遍历整棵树一次,复杂度为 O(N)
      • 空间复杂度 O(N):需要额外空间栈进行储存树,复杂度为 O(N)
http://www.zhongyajixie.com/news/1248.html

相关文章:

  • 网站被百度k了如何申述免费隐私网站推广
  • 做优化的网站电话sem优化师是做什么的
  • 海南建设银行官方网站焦作seo公司
  • 自己切片视频做网站百度标注平台怎么加入
  • 有域名自己怎么做网站推广游戏怎么拉人最快
  • 盐山县招聘网站建设网店推广策划方案
  • 做网站要和企业logo百度新闻下载安装
  • 学风建设专题网站深圳网络推广渠道
  • WordPress仿牌seo网络营销外包
  • 百度seo优化方案南宁百度首页优化
  • 苏州哪家网站建设西安百度公司地址介绍
  • 临安市建设局网站公司模板建站
  • 广州网站建设公司小程序百度小说风云榜今天
  • 美国做美业网站的么特南昌seo公司
  • 广西建设厅网站招 标 信 息网站推广应该坚持什么策略
  • 毕业设计网站开发题目seo优化网站推广全域营销获客公司
  • 还有哪些网站做产品众筹长沙新媒体营销
  • 东凤镇做网站公司百度seo霸屏软件
  • 做淘客网站去哪里购买空间网站建立具体步骤是
  • 公司企业邮箱怎么登录电脑优化用什么软件好
  • 个人如何做短视频网站安康seo
  • 做株洲网站需要多少钱源云推广
  • 做jsp网站用哪些软件下载百度推广最简单方法
  • 网站建设与管理维护 大学论文360搜索网址是多少
  • wordpress简约企业商城网站seo优化服务
  • 广州公众号代运营公司搜索引擎seo关键词优化效果
  • 学生成绩管理系统 网站建设品牌推广平台
  • 杭州专业做网站的公司网站推广软件免费版下载
  • 网站开发维护公司微信裂变营销软件
  • 做那种的视频网站有哪些seo外包方案