[剑指offer]面试题第[36]题[JAVA][二叉搜索树与双向链表][递归]

【问题描述】[中等]

在这里插入图片描述

【解答思路】

中序遍历

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间复杂度:O(N) 空间复杂度:O(N)
在这里插入图片描述

class Solution {Node pre, head;public Node treeToDoublyList(Node root) {if(root == null) return null;dfs(root);head.left = pre;pre.right = head;return head;}void dfs(Node cur) {if(cur == null) return;dfs(cur.left);if(pre != null) pre.right = cur;else head = cur;cur.left = pre;pre = cur;dfs(cur.right);}
}

【总结】

1.二叉搜索树中序遍历
// 打印中序遍历
void dfs(TreeNode root) {if(root == null) return;dfs(root.left); // 左System.out.println(root.val); // 根dfs(root.right); // 右
}
2.二叉搜索树中序遍历 单调地震
3.树 递归 画图

作者:Krahets
转载链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/solution/mian-shi-ti-36-er-cha-sou-suo-shu-yu-shuang-xian-5/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习第一次课-数学

说明:本文是七月算法5月深度学习班第一次课听课笔记。只记录关键知识点,有些没具体展开。帮助复习用。文中使用了老师课件中的公式。 微积分 导数 定义常用函数导数导数法则加法 乘法 除法 链式法则一元函数与多元函数一阶导 一元函数 f(x) 多元函…

深度学习第三次课-梯度下降与反向传播

梯度下降 损失函数可视化 得分函数 fW*X损失函数 cW*X-y 目标 损失函数最小 最优化过程可视化 一维二维 热力图如果损失函数是一个凸函数,例如SVM。凸函数 正系数加和凸函数神经网络 costfunction 非凸 因为系数有正有负。凸优化与最优化…

[Leetcode][第1025题][JAVA][除数博弈][数学][递推]

【问题描述】[中等] 【解答思路】 1. 数学证明 找规律 时间复杂度:O(1) 空间复杂度:O(1) 2. 递推 时间复杂度:O(N) 空间复杂度:O(1) class Solution {public boolean divisorGame(int N) {boolean[] f new boolean[N 5];f[1]…

[Leetcode][第410题][JAVA][分割数组的最大值][动态规划][二分]

【问题描述】[中等] 【解答思路】 1. 动态规划 第 1 步:设计状态 令 f[i][j] 表示将数组的前 i 个数分割为 j 段所能得到的最大连续子数组和的最小值。 ( i ≥ j ) 第 2 步:状态转移方程 第 3 步:考虑初始化 f[i][…

数据结构与算法分析

本系列的笔记基于七月算法的《求职面试》课程以及《数据结构域算法分析-java语言描述》第2版,做学习笔记。 以下是这系列的目录。每个专题只做笔记,不求每个专题都要深入到很深很深。算法分析 表 栈 队列 并查集 哈希表 树 堆 图论 递归 深度优…

[算法][算法复杂度]常用算法复杂度速查表

复杂度通常会使用大 -O记号来表示,比如快速排序的平均时间复杂度是 O(nlog(n))。虽然我们应该做「理解派」,但是即使每个算法/数据结构都理解了,不时仍有可能忘记具体某个算法/数据结构的复杂度(特别是在最好、最坏和平均情形下的…

十张伟大的科学瞬间

题图: 搭载 ORBCOMM OG2-M1 卫星的猎鹰 9 号运载火箭发射,人类一直很渺小。 ▎2019 更新 北京时间 2019 年 4 月 10 日 21 点,人类首张黑洞照片正式发布! 这次的直接成像除了帮助我们直接确认了黑洞的存在,同时也通过模…

[Leetcode][第329题][JAVA][矩阵中的最长递增路径][DFS][拓扑排序]

【问题描述】[中等] 【解答思路】 1. 记忆化深度优先搜索 复杂度 class Solution {public int[][] dirs {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};public int rows, columns;public int longestIncreasingPath(int[][] matrix) {if (matrix null || matrix.length 0 || matri…

第二十八期:阿里云VS腾讯云 谁才是中国未来的云计算之王?

阿里云早在 2009 年就已经开始布局云计算领域,具有先发优势。据统计,40% 的中国 500 强企业、近一半中国上市公司、80% 中国科技类公司是阿里云的客户。而腾讯云基于腾讯自身在游戏、视频、社交、出行等业务的强势地位,一路奋起直追&#xff…

[小技巧][JAVA][转换]字符数组char[]与字符串String之间互相转换

1.字符数组转为字符串 方法1:直接在构造String时转换。 char[] data {‘a’, ‘b’, ‘c’}; String str new String(data);方法2:调用String类的方法转换。 String s String.valueOf(char[] ch)2.字符串转为字符数组 情况一:如果是”a…

CentOS 7 Apache服务的安装与配置(转)

https://blog.51cto.com/13525470/2070375 一、Apache简介 Apache 是一个知名的开源Web服务器。早期的Apache服务器由Apache Group来维护,直到1999年6月Apache Group在美国德拉瓦市成立了非盈利性组织的公司,即Apache软件基金会(Apache Softw…

第二十九期:全球首部AI交响变奏曲问世,AI技术应用再拓边界

人工智能技术,史上第一次升级到了复杂音乐的创作领域:交响曲。 全球首部 AI 交响变奏曲《我和我的祖国》,昨晚已由深圳交响乐团全球首演,它的出品方是中国平安人工智能研究院。 此前,你可能了解过 Google 的 Magenta、…

第三十期:BAT 为什么都看上了重庆?

一个城市朝向智能化创新的方向发展,一把手的重视是非常重要的。 文:I/O 重庆,作为我国中西部地区唯一的直辖市和国家中心城市,正在新一轮科技发展浪潮中扮演着越来越亮眼的角色。 尤其是近两个月来,重庆在推动科技创新…

第三十一期:世界上有四类人永远不可能成为编程界牛人(个人见解,欢迎补充)

本人歌谣,出来工作也有两年了。大学挂科无数,出来想搞技术。平时也就是以工作学习的知识为主,无聊的时候就会学习一些关于科技的知识。 在这本人给大家传授一些学习编程的心得体会,供大家分享交流: 1.没有专注力和恒心…

[Java]==和equals()的区别(按照数据类型区分)

背景知识 【引用类型】 复合数据类型是引用类型 **1.基本数据类型,也称原始数据类型。**byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(),比较的是他们的值。 基本数据类型比较, 和 …

第三十二期:如何摆脱「技术思维」的惯性?

虽然从标题上看,这篇文章是写给“技术人”的,但 从广义上来说,只要你是一位以理性见长的人,那么这篇文章要讲的东西可能会与你有关。 虽然从标题上看,这篇文章是写给“技术人”的,但 从广义上来说&#xff…

[Leetcode][第207题][JAVA][课程表][拓扑排序][DFS]

【问题描述】[中等] 【解答思路】 1. 拓扑排序 复杂度分析 HashSet[] 数组 import java.util.HashSet; import java.util.LinkedList; import java.util.Queue;public class Solution {public boolean canFinish(int numCourses, int[][] prerequisites) {if (numCourses &l…

RabbitMQ(1) - win+rabbitMQ

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。 1.安装Erlang 所以在安装rabbitMQ之前&…

[周赛][Leetcode][第5457题][JAVA][动态规划][和为奇数的子数组数目]

【问题描述】5457. 和为奇数的子数组数目[中等] 【解答思路】 1. 动态规划 第 1 步&#xff1a;设计状态 dp[i][0] 记录以arr[i]结尾的和为奇数数量 dp[i][1] 记录以arr[i]结尾的和为偶数数量 第 2 步&#xff1a;状态转移方程 for(int i1;i<n;i){if(arr[i]%20){dp[i][0]…

第九期: 阿里巴巴程序员常用的15款开发者工具

阿里巴巴将自身在各类业务场景下的技术积淀&#xff0c;通过开源、云上实现或工具等形式对外开放&#xff0c;本文将精选了一些阿里巴巴的开发者工具&#xff0c;希望能帮助开发者们提高开发效率、更优雅的写代码。 从人工到自动化&#xff0c;从重复到创新&#xff0c;技术演进…