E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
剑指Offer笔记
Java版
剑指offer笔记
(一)
1.数组中重复的数字思路1:使用哈希表,哈希表是一种根据关键码(key)直接访问值(value)的一种数据结构。而这种直接访问意味着只要知道key就能在O(1)时间内得到value,因此哈希表常用来统计频率、快速检验某个元素是否出现过等。step1:遍历数组,将没有出现过的元素加入哈希表。step2:遇到的元素在哈希表中出现过就是重复数组。step3:遍历结束也没找到就返回-1.importjav
ITRunner123
·
2023-11-11 18:48
数据结构
java
剑指offer
剑指Offer笔记
:图解09. 用两个栈实现队列 30. 包含min函数的栈
目录python题解:list常见使用方法:python题解:参考题解:剑指Offer09.用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回-1)示例1:输入:["CQueue","appendTail","deleteHead"
看起来不难啊
·
2023-08-04 08:30
剑指offer
笔记
数据结构
leetcode
剑指Offer笔记
2:06. 从尾到头打印链表 24. 反转链表
剑指Offer06.从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例1:输入:head=[1,3,2]输出:[2,3,1]#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,x):#self.val=x#self.next=NoneclassSolution:defreverseP
看起来不难啊
·
2023-08-04 08:00
剑指offer
链表
数据结构
leetcode
【
剑指Offer笔记
】:用两个栈实现队列
解题思路先进后出,再来一次先进后出,就变成后进先出了includeincludeincludeusingnamespacestd;classSolution{public:voidpush(intnode){stack1.push(node);}intpop(){intval=-1;if(stack1.empty()&&stack2.empty()){return-1;}if(stack2.emp
w8ed
·
2023-02-06 00:31
牛客
剑指offer笔记
(上)
文章目录1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2.请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。3.输入一个链表,按链表从尾到头的顺序
anqiqi疯狂暴走兔
·
2022-09-14 15:00
刷题/算法
数据结构
算法
链表
剑指offer笔记
文章目录01赋值运算符函数02单例模式03找一维数组04二维数组查找05替换字符串的空格06从尾开始输出单向链表07前序和中序构建二叉树08找出中序遍历的下一个节点09两个栈实现队列09队列如何实现栈10斐波那契数列11partition函数11快速排序11数字限定在较小范围内的0(n)方法排序11旋转数组的最小数字12矩阵中的路径13机器人的运动范围14动态规划14贪婪算法14剪绳子15.位运算
浅笑的青珞
·
2020-09-15 04:59
校招复习
数据结构&算法
剑指OFFER笔记
_25_合并两个排序的链表_JAVA实现
剑指OFFER笔记
_25_合并两个排序的链表_JAVA实现题目:合并两个排序的链表解题思路代码ListNode结构代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:合并两个排序的链表输入两个递增排序的链表
YesPlease
·
2020-08-21 08:46
学习笔记
剑指OFFER笔记
_23_链表中环的入口节点_JAVA实现
剑指OFFER笔记
_23_链表中环的入口节点_JAVA实现题目:链表中环的入口节点解题思路代码ListNode结构代码函数主体部分代码测试部分代码运行结果截图题目:链表中环的入口节点如果一个链表中包含环
YesPlease
·
2020-08-21 08:46
学习笔记
剑指OFFER笔记
_24_反转链表_JAVA实现
剑指OFFER笔记
_24_反转链表_JAVA实现题目:反转链表解题思路代码ListNode结构代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:反转链表定义一个函数,输入一个链表的头节点
YesPlease
·
2020-08-21 08:46
学习笔记
链表
数据结构
leetcode
剑指OFFER笔记
_22_链表中倒数第k个节点_JAVA实现
剑指OFFER笔记
_22_链表中倒数第k个节点_JAVA实现题目:链表中倒数第k个节点解题思路代码ListNode结构代码函数主体部分代码LeetCode运行截图题目:链表中倒数第k个节点输入一个链表,
YesPlease
·
2020-08-21 08:45
学习笔记
链表
leetcode
数据结构
剑指OFFER笔记
_03_1_寻找数组中重复的数字_JAVA实现
剑指OFFER_03_1_寻找数组中重复的数字_JAVA实现题目:寻找数组中重复的数字题设条件中值得关注的点书中的算法思想用例解析代码函数主体部分代码测试部分代码运行结果LeetCode提交结果题目:寻找数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入
YesPlease
·
2020-08-21 08:15
学习笔记
剑指OFFER笔记
_04_二维数组中的查找_JAVA实现
剑指OFFER_04_二维数组中的查找_JAVA实现题目:二维数组中的查找解题思路用例解析代码函数主体部分代码测试部分代码运行结果截图LeetCode提交结果题目:二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路将待寻找整数用target表示将一个二维数组画
YesPlease
·
2020-08-21 08:15
学习笔记
java
算法
数据结构
剑指OFFER笔记
_03_2_不修改数组找出重复的数字_JAVA实现
剑指OFFER笔记
_03_2_不修改数组找出重复的数字_JAVA实现题目:不修改数组找出重复的数字题设条件中值得关注的点解题思路代码部分第一种方法函数主体部分测试部分测试运行结果第二种方法函数主体部分测试部分测试运行结果题目
YesPlease
·
2020-08-21 08:15
学习笔记
剑指OFFER笔记
_21_调整数组顺序使奇数位于偶数前面_JAVA实现
剑指OFFER笔记
_21_调整数组顺序使奇数位于偶数前面_JAVA实现题目:调整数组顺序使奇数位于偶数前面解题思路代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:调整数组顺序使奇数位于偶数前面输入一个整数数组
YesPlease
·
2020-08-21 08:15
学习笔记
leetcode
算法
剑指OFFER笔记
_17_打印从1到最大的n位数_JAVA实现
剑指OFFER笔记
_17_打印从1到最大的n位数_JAVA实现题目:打印从1到最大的n位数解题思路代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:打印从1到最大的n位数输入数字
YesPlease
·
2020-08-21 07:16
学习笔记
剑指offer笔记
——20. 表示数值的字符串(考虑特殊情况即可)
原题思路既然来判断,字符串是否表示数值,将字符串转成字符数组,那么便将几种特殊情况判断一下就知道了。设置几个标签,来判断情况,初始值都为falsenum:是否出现0-9dot:是否出现小数点eE:是否出现e,E正常情况是数字,0-9若是小数点小数点之前不能有小数点和E,e符号,否则返回falsee,Ee,E之前不能出现e,E,前面必须有数字出现,否则返回false,并且出现e,E之后,需要重置数字
Lesliecc96
·
2020-08-18 23:42
java学习
leetcode刷题总结
剑指offer
字符串
剑指offer
剑指offer笔记
面试题2----实现Singleton模式
题目:设计一个类,我们只能生成该类的一个实例。解法一:单线程解法//缺点:多线程情况下,每个线程可能创建出不同的的Singleton实例#includeusingnamespacestd;classSingleton{public:staticSingleton*getInstance(){if(m_pInstance==nullptr){m_pInstance=newSingleton();}r
cnmeimei
·
2020-08-14 07:42
技术
剑指OFFER笔记
_09_用两个栈实现队列_JAVA实现
剑指OFFER笔记
_09_用两个栈实现队列_JAVA实现题目:用两个栈实现队列解题思路情况分析代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:用两个栈实现队列用两个栈实现一个队列
YesPlease
·
2020-08-12 15:55
学习笔记
剑指offer笔记
@正则表达式匹配(附Python代码)
题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。解题思路:1.考虑特殊情况:两个字符串都为空,这时返回true。第一个字符串s不空,而第二个字符串
小晓酱手记
·
2020-08-10 00:54
剑指Offer
剑指offer笔记
1:数组中重复的数字(Python)
剑指offer笔记
1:数组中重复的数字(P39)目录
剑指offer笔记
1:数组中重复的数字(P39)题目一:找出数组中重复的数字方法一:先排序后遍历方法二:哈希表方法三:交换数字位置小结题目二:不修改数组找出重复的数字方法一
摘瑞
·
2020-08-10 00:32
剑指offer
剑指OFFER笔记
_19_正则表达式匹配_JAVA实现
剑指OFFER笔记
_19_正则表达式匹配_JAVA实现题目:正则表达式匹配解题思路代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:正则表达式匹配请实现一个函数用来匹配包含’.
YesPlease
·
2020-08-09 19:01
学习笔记
剑指OFFER笔记
_13_机器人的运动范围_JAVA实现
剑指OFFER笔记
_13_机器人的运动范围_JAVA实现题目:机器人的运动范围解题思路代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:机器人的运动范围地上有一个m行n列的方格。
YesPlease
·
2020-08-09 19:01
学习笔记
剑指offer笔记
剑指offer第二章:2.3数据结构2.3.1数组数组与指针的区别数组作为入参,变为指针。二维数组查找。左上小,右下大判断右上值,大于去掉列,小于去掉行。2.3.2字符串内存申请问题。替换空格,从后往前。2.3.3链表添加删除从尾部到头部打印,可以翻转列表(允许修改链表),否则就是使用栈,即先进后出。递归实现。2.3.4树前序:根左右中序:左根右后续:左右根递归实现循环实现dfsbfs队列实现二叉
zzb5233
·
2020-07-29 04:45
剑指offer
剑指Offer笔记
(java)
1、单例//饿汉模式:线程安全,耗费资源。(线程安全的原因的是因为类加载初始化时就创建好一个静态对象了,//以后线程若想使用实例化对象的话就直接使用就行了不必实例化了,因此不存在线程不安全的问题。)publicclassSingleton{privateSingleton(){};privatestaticfinalSingletoninstance=newSingleton();//一上来就直接
何小黑~
·
2020-07-07 16:58
读书笔记
把数组中全部数拼接组合成一个最小的数(
剑指offer笔记
)
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。先附上代码,后面具体讲解一下为何这样写以及代码中涉及到的python方法#-*-coding:utf-8-*-classSolution:defPrintMinNumber(self,numbers):ifnotnum
诶呀吗_Bug
·
2020-07-06 02:23
算法与数据结构
剑指offer笔记
(1)定义一个空类型,里面没有任何成员变量和成员函数。对该类型求sizeof 结果?
这是剑指offer第23页的一个问题:定义一个空类型,里面没有任何成员变量和成员函数。对该类型求sizeof结果?结果为1。为什么不是0?空类型实例中不包含任何信息,但是当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例(你想想,这个实例的指针至少要指向一块内存空间吧)。至于占多少空间,由编译器决定。VisualStudio中每个空类型的实例占用1字节的空间。如果在该
请叫我少爷
·
2020-07-05 11:07
剑指offer笔记
剑指OFFER笔记
_20_表示数值的字符串_JAVA实现
剑指OFFER笔记
_20_表示数值的字符串_JAVA实现题目:表示数值的字符串解题思路代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图题目:表示数值的字符串请实现一个函数用来判断字符串是否表示数值
YesPlease
·
2020-06-24 15:24
学习笔记
字符串
java
leetcode
剑指Offer笔记
—— 用两个栈实现队列 旋转数组的最小数字
面试题7:用两个栈实现队列题目大致为:用两个栈实现队列的两个函数appendTail和deleteHead。思路:栈的特性是:后进先出,而队列的特性是:先进先出。这里使用两个栈实现队列有点负负得正的意思。栈1负责添加,而栈2负责删除。Java代码:[java]viewplaincopypackageorg.algorithm.pointtooffer;importjava.util.Stack;/
南岸青栀
·
2020-06-23 22:26
算法
剑指Offer笔记
——面试简介
面试的流程面试官谈面试面试官的要求普遍为:初级程序员算法和数据结构高级程序员专业技能和项目经验了解公司近况、项目情况对所应聘的工作抱有很大的热情准备好合适的问面试官的问题过硬的编码能力面试的3种形式面试的形式和流程电话面试尽可能把细节说清楚如果没听清楚问题或者没听懂问题,一定要大胆多提问共享桌面远程面试思考清楚再开始编码良好的代码命名和缩进对齐习惯学会进行单元测试在出现bug的时候,熟练设置断点、
Cabbage11233333
·
2020-06-23 20:49
读书笔记
剑指offer笔记
(一)
第一章面试的流程面试官谈面试对于初级程序员,一般会偏向考察算法和数据结构,看应聘者的基本功;对于高级程序员,会多关注专业技能和项目经验。应聘者要事先做好准备,对公司近况、项目情况有所了解,对应聘的工作很有热情。另外,应聘者还要准备好合适的问题问面试官。应聘者在面试过程中首先需要放松,不要过于紧张,这有助于后面解决问题时开拓思路。其次不要急于编写代码,应该先了解清楚所要解决的问题。这时候最好先和面试
fangzhan1109
·
2020-06-23 06:39
笔
记
剑指offer笔记
9:斐波那契数列(Python)
剑指offer笔记
9:斐波那契数列(P74)目录
剑指offer笔记
9:斐波那契数列(P74)题目一:斐波那契数列问题分析python代码方法一(递归)方法二(迭代)题目二:青蛙跳台阶问题python代码题目三
摘瑞
·
2020-03-30 12:47
剑指offer
python
动态规划
算法
leetcode
【
剑指Offer笔记
】:从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。法一:递归includeincludeusingnamespacestd;structListNode{public:intval;structListNode*next;/*ListNode(intx):val(x),next(NULL){}*/};classSolution{private:vectorres;public
w8ed
·
2020-01-05 23:35
剑指offer笔记
面试题1----赋值运算符函数
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。classCMyString{public:CMyString(char*pData=nullptr);CMyString(constCMyString&str);~CMyString(void);private:char*m_pData;};注意点:是否把返回值的类型声明为该类型的引用,并在函数结束前返回实例自身的引用(*t
奔跑的亮仔
·
2019-10-17 20:00
剑指offer笔记
面试题2----实现Singleton模式
题目:设计一个类,我们只能生成该类的一个实例。解法一:单线程解法//缺点:多线程情况下,每个线程可能创建出不同的的Singleton实例#includeusingnamespacestd;classSingleton{public:staticSingleton*getInstance(){if(m_pInstance==nullptr){m_pInstance=newSingleton();}r
奔跑的亮仔
·
2019-10-17 20:00
剑指offer笔记
面试题2----实现Singleton模式
题目:设计一个类,我们只能生成该类的一个实例。解法一:单线程解法//缺点:多线程情况下,每个线程可能创建出不同的的Singleton实例#includeusingnamespacestd;classSingleton{public:staticSingleton*getInstance(){if(m_pInstance==nullptr){m_pInstance=newSingleton();}r
奔跑的亮仔
·
2019-10-17 20:00
剑指offer笔记
面试题3----数组中重复的数字
题目一:找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。测试用例:长度为n的数组里包含一个或多个重复的数字。数组中不包含重复的数字。无效输入测试用例(输入空指针;长
奔跑的亮仔
·
2019-10-17 19:00
剑指offer笔记
面试题4----二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。测试用例:二维数组中包含查找的数字(查找的数字是数组中的最大值和最小值;查找的数字介于数组中的最大值和最小值之间)。二维数组中没有查找的数字(查找的数字大于数组中的最大值;查找的数字小于数组中的最小值;查找的数字在数组的最大值和
奔跑的亮仔
·
2019-10-17 19:00
剑指offer笔记
面试题5----替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"20%"。例如,输入“Wearehappy.”则输出"We%20are%20happy."。注意:看到这个题目,我们首先应该想到的是原来一个空格字符,替换之后变成'%'、'2'和'0'这3个字符,因此字符串会边长。如果是在原来的字符串上进行替换,就有可能覆盖修改在该字符串后面的内存。如果是创建新的字符串并在新的字符串上进行替换,那么我们可以自己分配
奔跑的亮仔
·
2019-10-17 19:00
剑指offer笔记
面试题6----从未到头打印链表
题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。链表节点定义如下:structListNode{intm_nKey;ListNode*m_pNext;}测试用例:功能测试(输入的链表有多个节点;输入的链表只有一个节点)。特殊输入测试(输入的链表头结点指针为nullptr)。测试代码:voidTest(ListNode*pHead){PrintList(pHead);PrintList
奔跑的亮仔
·
2019-10-17 19:00
剑指offer笔记
面试题7----重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,53,8,6},则重建如下图所示的二叉树并输出它的头结点。二叉树的节点的定义如下:structBinaryTreeNode{intm_nValue;BinaryTreeNode*m_pLeft;B
奔跑的亮仔
·
2019-10-17 19:00
剑指offer笔记
面试题8----二叉树的下一个节点
题目:给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。测试用例:普通二叉树(完全二叉树,不完全二叉树)。特殊二叉树(所有节点都没有右子节点的二叉树;所有节点都没有左子节点的二叉树;只有一个节点的二叉树;二叉树的根节点指针为nullptr)。不同位置的节点的下一个节点(下一个节点为当前节点的右子节点、右子树的
奔跑的亮仔
·
2019-10-17 18:00
剑指offer笔记
面试题9----用两个栈实现队列
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在尾部插入节点和在队列头部删除节点的功能。测试用例:往空的队列里添加、删除元素。往非空的队列里添加、删除元素。连续删除元素直至队列为空。测试代码:voidtest(charactual,charexpected){if(actual==expected)printf("testpass
奔跑的亮仔
·
2019-10-17 18:00
剑指offer笔记
面试题10----斐波那契数列
题目:求斐波那契数列的第n项。写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)。测试用例:功能测试(如输入3、5、10等)。边界值测试(如输入0、1、2)。性能测试(输入较大的数字,如40、50、100等)。测试代码:voidtest(intn,intexpected){if(fibonacci_solution1
奔跑的亮仔
·
2019-10-17 18:00
剑指offer笔记
面试题11----旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数字的最小值为1。测试用例:功能测试(输入的数组是升序排序数组的一个旋转,数组中有重复数字或者没有重复数字)。边界值测试(输入的数组是一个升序排序的数组,只包含一个数字的数组)。特殊输入测试(输入nu
奔跑的亮仔
·
2019-10-17 17:00
剑指offer笔记
面试题12----矩阵中的路径
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3x4的矩阵中包含一条字符串"bfce"的路径(路径中的字母用下画线标出)。但矩阵中不包含字符串"abfb"的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个
奔跑的亮仔
·
2019-10-17 16:00
剑指offer笔记
面试题13----机器人的运动范围
题目:地上有一个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18。但它不能进入方格(35,38),因为3+5+3+8=19。请问该机器人能够到达多少个格子?测试用例:功能测试(方格为多行多列;k为正数)。边界值测试(方格只有一行
奔跑的亮仔
·
2019-10-17 16:00
剑指offer笔记
面试题14----剪绳子
题目:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。测试用例:功能测试(绳子的初始长度大于5)。边界值测试(绳子的初始长度分别为0、1、2、3、4)。测试代码:
奔跑的亮仔
·
2019-10-17 15:00
浅谈对尾递归的理解
关于其它题目的题解与笔记,感兴趣的朋友可以到我的Github或个人博客上看看:
剑指Offer笔记
Cenjie’sBlog,以下是正文。
水木今山
·
2018-08-22 11:57
算法
剑指offer笔记
27.二叉搜索树与双向链表递归:使用中序遍历,找到最左边的节点(即最小的节点,作为节点头)作为当前头节点,返回,上一节作为当前节点,当前节点指向头节点,头节点也指向当前节点,当前节点作为头节点;递归到右子树最大节点。循环:使用中序遍历的非递归方法,在第二层循环外调整两个节点相互指向,最后返回第一个节点。30.栈最小数min函数引入辅助栈,第一个数入两栈,其余数比较辅助栈的栈顶元素大小,较小入辅助栈
ChillChilling
·
2018-05-25 15:22
心得
数据结构
算法
(
剑指offer笔记
)根据前序遍历和后序遍历重建二叉树
问题:输入某二叉树的前序遍历和中序遍历的结果,重建出该二叉树,假设输入的前序遍历和终须遍历的结果都不含有重复数字。最后按层遍历输出二叉树结果。publicstaticvoidmain(String[]args){ //TODO自动生成的方法存根 Character[]preOrder=newCharacter[]{'a','b','d','g','c','e','f','h'}; Characte
shuxiangxingkong
·
2014-05-26 22:00
java
数据结构
泛型
二叉树
遍历
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他