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

投诉举报网站 建设方案房产中介网站建设的目的

投诉举报网站 建设方案,房产中介网站建设的目的,wordpress learnpress,建立网站域名的费用1 题目:99. 恢复二叉搜索树 官方标定难度: 给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 示例 1: 输入:root [1,3,null,null,2] 输…

1 题目:99. 恢复二叉搜索树

官方标定难度:

给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。

示例 1:

在这里插入图片描述

输入:root = [1,3,null,null,2]
输出:[3,1,null,null,2]
解释:3 不能是 1 的左孩子,因为 3 > 1 。交换 1 和 3 使二叉搜索树有效。

示例 2:

在这里插入图片描述

输入:root = [3,1,4,null,null,2]
输出:[2,1,4,null,null,3]
解释:2 不能在 3 的右子树中,因为 2 < 3 。交换 2 和 3 使二叉搜索树有效。

提示:

树上节点的数目在范围 [2, 1000] 内
− 2 31 < = N o d e . v a l < = 2 31 − 1 -2^{31} <= Node.val <= 2^{31} - 1 231<=Node.val<=2311

进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用 O(1) 空间的解决方案吗?

2 solution

二叉搜索树的中序遍历是一个单调递增数列,所以需要找到顺序不对的地方,如果只有一个,说明是相邻的两个数交换了顺序,如果是两个,说明前面那个偏大的和后面那个偏小的错了。

代码

class Solution {/** 有一个递增序列两个数交换的位置,如果相邻,则只出现一次前面比后面大,交换即可* 如果出现两次,则第一次大的,和第二次小的交换就行*/TreeNode *f{nullptr}, *g{nullptr}, *h{nullptr};int val{-3000};void dfs(TreeNode *root) {if (!root) return;dfs(root->left);if (root->val < val) {if (!f) f = h, g = root;else g = root;}val = root->val;h = root;dfs(root->right);}public:void recoverTree(TreeNode *root) {dfs(root);swap(f->val, g->val);}
};

结果

在这里插入图片描述

http://www.dtcms.com/a/440676.html

相关文章:

  • a站是什么如何建设一个生活服务网站
  • 建设免费网站登录网址网站建设开发案例
  • 化妆品建设网站的目的wordpress 小米商城模板
  • 手机网站自动跳转让人做网站 需要准备什么条件
  • 做项目挣钱的网站wordpress没有php.ini
  • wordpress搜索收录自己建个网站做优化
  • 国内做视频的网站有哪些有没有做粤菜的网站
  • 专门做瑜伽的网站标签在线设计平台
  • 宿迁企业网站建设thinkphp企业网站
  • 分析苏宁易购的网站建设做百度药材种苗网站
  • 服装商务网站建设策划书如何做贷款网站推广
  • Google Drive云盘清理,一键释放海量空间!
  • 地址 上海石门二路 网站建设亚马逊seo搜索什么意思
  • 网站域名解析ip地址如何 申请个人网站
  • 服装网站建设需要什么内容网站常用特效
  • 网站换服务器 备案网络营销有本科吗
  • 重庆可视化网站制作go语言 做网站
  • 网站开发运营地方门户网站app
  • 在线做logo印章网站企业营业执照查询系统
  • 私人免费网站怎么下载企业制作网站服务
  • 做网站购买域名洛阳网站搭建
  • 我自己做个网站怎么做成都小程序建设乚成都柚米
  • 光明新区建设网站上海公司注册核名官网
  • 网站seo运营培训机构绘图软件有哪些
  • 徐州市城乡和城乡建设厅网站首页微信小程序开发定制公司
  • 【FreeRTOS】第八课(1):信号量(Semaphore)
  • 广州网站建设网站开发怎么做多语言网站
  • 重庆专业做淘宝网站抖音代运营排名
  • 怎么让自己的网站稍微变前面点中国互联网排名前十的公司
  • 佛山营销网站建设费用东莞专业做外贸网站的公司