logo资料库

leetcode题目详解.pdf

第1页 / 共230页
第2页 / 共230页
第3页 / 共230页
第4页 / 共230页
第5页 / 共230页
第6页 / 共230页
第7页 / 共230页
第8页 / 共230页
资料共230页,剩余部分请下载后查看
目录
第 1 章 编程技巧
第 2 章 线性表
2.1 数组
2.1.1 Remove Duplicates from Sorted Array
2.1.2 Remove Duplicates from Sorted Array II
2.1.3 Search in Rotated Sorted Array
2.1.4 Search in Rotated Sorted Array II
2.1.5 Median of Two Sorted Arrays
2.1.6 Longest Consecutive Sequence
2.1.7 Two Sum
2.1.8 3Sum
2.1.9 3Sum Closest
2.1.10 4Sum
2.1.11 Remove Element
2.1.12 Next Permutation
2.1.13 Permutation Sequence
2.1.14 Valid Sudoku
2.1.15 Trapping Rain Water
2.1.16 Rotate Image
2.1.17 Plus One
2.1.18 Climbing Stairs
2.1.19 Gray Code
2.1.20 Set Matrix Zeroes
2.1.21 Gas Station
2.1.22 Candy
2.1.23 Single Number
2.1.24 Single Number II
2.2 单链表
2.2.1 Add Two Numbers
2.2.2 Reverse Linked List II
2.2.3 Partition List
2.2.4 Remove Duplicates from Sorted List
2.2.5 Remove Duplicates from Sorted List II
2.2.6 Rotate List
2.2.7 Remove Nth Node From End of List
2.2.8 Swap Nodes in Pairs
2.2.9 Reverse Nodes in k-Group
2.2.10 Copy List with Random Pointer
2.2.11 Linked List Cycle
2.2.12 Linked List Cycle II
2.2.13 Reorder List
2.2.14 LRU Cache
第 3 章 字符串
3.1 Valid Palindrome
3.2 Implement strStr()
3.3 String to Integer (atoi)
3.4 Add Binary
3.5 Longest Palindromic Substring
3.6 Regular Expression Matching
3.7 Wildcard Matching
3.8 Longest Common Prefix
3.9 Valid Number
3.10 Integer to Roman
3.11 Roman to Integer
3.12 Count and Say
3.13 Anagrams
3.14 Simplify Path
3.15 Length of Last Word
第 4 章 栈和队列
4.1 栈
4.1.1 Valid Parentheses
4.1.2 Longest Valid Parentheses
4.1.3 Largest Rectangle in Histogram
4.1.4 Evaluate Reverse Polish Notation
4.2 队列
第 5 章 树
5.1 二叉树的遍历
5.1.1 Binary Tree Preorder Traversal
5.1.2 Binary Tree Inorder Traversal
5.1.3 Binary Tree Postorder Traversal
5.1.4 Binary Tree Level Order Traversal
5.1.5 Binary Tree Level Order Traversal II
5.1.6 Binary Tree Zigzag Level Order Traversal
5.1.7 Recover Binary Search Tree
5.1.8 Same Tree
5.1.9 Symmetric Tree
5.1.10 Balanced Binary Tree
5.1.11 Flatten Binary Tree to Linked List
5.1.12 Populating Next Right Pointers in Each Node II
5.2 二叉树的构建
5.2.1 Construct Binary Tree from Preorder and Inorder Traversal
5.2.2 Construct Binary Tree from Inorder and Postorder Traversal
5.3 二叉查找树
5.3.1 Unique Binary Search Trees
5.3.2 Unique Binary Search Trees II
5.3.3 Validate Binary Search Tree
5.3.4 Convert Sorted Array to Binary Search Tree
5.3.5 Convert Sorted List to Binary Search Tree
5.4 二叉树的递归
5.4.1 Minimum Depth of Binary Tree
5.4.2 Maximum Depth of Binary Tree
5.4.3 Path Sum
5.4.4 Path Sum II
5.4.5 Binary Tree Maximum Path Sum
5.4.6 Populating Next Right Pointers in Each Node
5.4.7 Sum Root to Leaf Numbers
第 6 章 排序
6.1 Merge Sorted Array
6.2 Merge Two Sorted Lists
6.3 Merge k Sorted Lists
6.4 Insertion Sort List
6.5 Sort List
6.6 First Missing Positive
6.7 Sort Colors
第 7 章 查找
7.1 Search for a Range
7.2 Search Insert Position
7.3 Search a 2D Matrix
第 8 章 暴力枚举法
8.1 Subsets
8.2 Subsets II
8.3 Permutations
8.4 Permutations II
8.5 Combinations
8.6 Letter Combinations of a Phone Number
8.6.1 递归
8.6.2 迭代
第 9 章 广度优先搜索
9.1 Word Ladder
9.2 Word Ladder II
9.3 Surrounded Regions
9.4 小结
9.4.1 适用场景
9.4.2 思考的步骤
9.4.3 代码模板
第10 章 深度优先搜索
10.1 Palindrome Partitioning
10.2 Unique Paths
10.2.1 深搜
10.2.2 备忘录法
10.2.3 动规
10.2.4 数学公式
10.3 Unique Paths II
10.3.1 备忘录法
10.3.2 动规
10.4 N-Queens
10.5 N-Queens II
10.6 Restore IP Addresses
10.7 Combination Sum
10.8 Combination Sum II
10.9 Generate Parentheses
10.10 Sudoku Solver
10.11 Word Search
10.12 小结
10.12.1 适用场景
10.12.2 思考的步骤
10.12.3 代码模板
10.12.4 深搜与回溯法的区别
10.12.5 深搜与递归的区别
第 11 章 分治法
11.1 Pow(x,n)
11.2 Sqrt(x)
第 12 章 贪心法
12.1 Jump Game
12.2 Jump Game II
12.3 Best Time to Buy and Sell Stock
12.4 Best Time to Buy and Sell Stock II
12.5 Longest Substring Without Repeating Characters
12.6 Container With Most Water
第 13 章 动态规划
13.1 Triangle
13.2 Maximum Subarray
13.3 Palindrome Partitioning II
13.4 Maximal Rectangle
13.5 Best Time to Buy and Sell Stock III
13.6 Interleaving String
13.7 Scramble String
13.8 Minimum Path Sum
13.9 Edit Distance
13.10 Decode Ways
13.11 Distinct Subsequences
13.12 Word Break
13.13 Word Break II
第 14 章 图
14.1 Clone Graph
第 15 章 细节实现题
15.1 Reverse Integer
15.2 Palindrome Number
15.3 Insert Interval
15.4 Merge Intervals
15.5 Minimum Window Substring
15.6 Multiply Strings
15.7 Substring with Concatenation of All Words
15.8 Pascal’ s Triangle
15.9 Pascal’ s Triangle II
15.10 Spiral Matrix
15.11 Spiral Matrix II
15.12 ZigZag Conversion
15.13 Divide Two Integers
15.14 Text Justification
15.15 Max Points on a Line
纸上得来终觉浅,绝知此事要躬行 LeetCode 题目详解 吕怡龙(lvyilong316@163.com) (2015.07.01) 1
纸上得来终觉浅,绝知此事要躬行 谨以此书献给 B603 以及曾 经来过的所有小伙伴 2
纸上得来终觉浅,绝知此事要躬行  写在前面 本文总结了 LeetCode Online Judge(http://leetcode.com/onlinejudge) 2013 年为止 的所有题目的答案,所有代码经过测试通过,为了方便自己日后的算法的总结特此记录,部 分思路和解法来源于网上,特别感谢题友戴方勤,连城(http://weibo.com/lianchengzju), 曹鹏(http://weibo.com/cpcs),王顺达(http://weibo.com/u/1234984145)提供的思路。全 文经过 2012 年,2013 年,2015 年三次修改整合,将之前的部分代码替换为 C++ 11,一方 面是为了简洁,另一方面主要是为了熟悉一下刚刚出来的 C++11 特性。 本文中的代码规范,跟在公司中的工程规范略有不同,为了使代码短(方便迅速实现) (1) 所有代码都是单一文件。这是因为一般 OJ 网站,提交代码的时候只有一个文本框,如 果还是按照标准做法,比如分为头文件.h 和源代码.cpp,无法在网站上提交; (2) Shorter is better。能递归则一定不用栈;能用 STL 则一定不自己实现。 (3) 不提倡防御式编程。不需要检查 malloc()/new 返回的指针是否为 nullptr;不需要检 查内部函数入口参数的有效性。  如何使用 由于时间有限,本文没有对每个题目过为深入的分析和效率的挖掘。一方面本文只是想 提供一个大家刷题的参考,另一方面也为了阅读的轻松。如果对于每个题目都进行深入的分 析,可能就会成为类似博主 July 的博文(微软面试 100 题作者)内容略显冗余,并且很多分 析如果不具备一定算法功底是很难理解的。但是本文尽可能的总结了每个题目的多种思路实 现。 如果你还有一两个月即将找工作,那么建议阅读时短暂思考后如果没有头绪则直接看答 案,并且只需从每个题目的解法中选取一个自己最容易理解的(注意不是代码最短的,也不 是效率最高的)方法记下了,其他方法不需要过多研究。因为确保自己不忘记才是最关键的, 高效的算法虽然深受面试官喜爱,但是短时间做大量题目很难保证到了面试时候你还能想起 来这些题的解法。 如果你还离找工作有段时间,如研一或研二(学硕),那么建议仅把本文作为一个参考, 自己动手刷题,每个题目要自己独立思考(不要动不动就去网上搜博客答案,这样很难提高 算法能力),即使自己的效率不高也要动手实现。一时想不起来的时候可以先看别的题目, 这个题目可以在每天去实验室路上或者各种空闲抽空思考一下,很多时候机会柳暗花明。如 果几天都没想到,再去看本文提供的思路,然后认真去思考:1.自己为什么没有想到这种方 法;2.采用这种方法的题目有什么隐含特点;3.之前有没有类似的解法题目,如果有进行对 比整理,找到这些题目的共性,总结解法的代码框架。  如何学习算法 算法学习和应付面试中的算法是完全不同的,一个良好的算法功底可以基本确保应付 IT 企业的大部分算法考题,但是相反那些可以通过公司面试算法人的算法能力可能是很差 的。如何应付面试算法这里不在多说,网上烂大街的面经都有讲,其实就是题海战术,或者 说是“背题”。这种方式对于面试准备所需时间较短,但对自身提高不大,如果是你花两三 个月做这些工作,那么找工作结束后基本上也就忘了一干二净了,对自己分析问题解决问题 的能力没有什么提高。 算法学习主要把握一个准则,就是实践和理论相结合。这个方面很多人过于重视刷题, 这是一个很大的误区,刷题是算法提高不可缺少的,但不是仅仅刷题就可以提高的。算法学 习中关键是理论基础完善,思维方式的培养,代码编写的熟练。而前两方面都是仅仅通过刷 3
纸上得来终觉浅,绝知此事要躬行 题不能提高的。 算法学习的理论基础主要包括三个方面:数学基础、数据结构、经典算法。数学基础包 括:离散数学、组合数学、具体数学等(可以找对应的书籍学习);数据结构方面本科大多 基本掌握;经典算法可以参考下面的一些书籍。 算法圣经:《算法导论》 经典算法:《编程珠玑》、《编程珠玑续》、《Cracking the coding interview》、 《计算机程序设计艺术》等。(其实经典算法也靠积累,如 KMP、A*、SIFT 等) 数学方面:《组合数学》、《具体数学》、《离散数学》等 刷题参考书:《编程之美》、《剑指 offer》等,这些书只能练练手,对自身的内功提 高没什么作用。 刷题网站: 1.LeetCode http://leetcode.com/ 这个网站里有很多经典面试题的讲解,当然最主要的是它的 OJ 系统,里面有 100 多道 题目,和 ACM OJ 不同的是,这里面的题目都是来自于面试题,所有更有针对性,建议至少 刷 3 遍,七年时间我刷了差不多 7、8 遍,多刷几遍不丢人。 2.POJ http://poj.org/ 这是北大的 OJ,leetcode 满足不了你,就可以来这刷了,如果还满足不了就找国外的 OJ 吧,USACO、URAL 等。 3. NOCOW http://www.nocow.cn/ 这里也有不少 acm 相关的资料,推荐看一下 USACO 和 URAL 的题解。 4. Careercup http://www.careercup.com/ 国外著名的帮助找工作的网站,里面有很多 Google,MS,FB,Amazon 等等名企的面试 题,有精力就一道一道做吧。 如果实在感觉自己算法基础太差,可以从“九度”的 OJ 开始,这个上面大都是入门的。 此外注意了解现有平台及工具中所用的经典算法,如压缩软件中的 LZ77 算法,亚马逊 的 Dynamo 中使用的一致性算法,两阶段协议,pasox 协议,nginx 中的复杂均衡策略等等。 提示:以上总结仅代表个人七年时间算法学习方面的看法和建议,算法主要是“内功” 的修养,这是一个漫长的过程,不能一味的追求速度,有些题要反复刷,有些书要反复看, 注意去总结和思考。如果本科阶段没有这方面的学习,那么上面所列的东西在一两年内是很 难掌握的,所以要根据自己的时间选择性的学习。  关于找工作 相信每个人都希望通过两到三年的研究生学习找到一个好工作。但前提必须要知道是什 么才叫“好”工作。每个人的情况不同,理想不同,同一个工作对于不同的人来说价值也不 一样。所以最关键的是知道自己想要的是什么,只有这样才能有一个适合自己的选择,找工 作,找的不仅仅是工作,更重要的是今后的生活方式。选择比努力更重要。 可供选择的主要如下: IT 技术类:开发、测试、运维、数据分析、算法等。 体制内:IT 公司 体制外:银行软开等 IT 非技术类: 产品经理(PM)等 非技术类:销售经理、客户经理、管理培训生等 其他:国有企业,公务员,证券公司等 4
纸上得来终觉浅,绝知此事要躬行 没有人会比自己更了解自己,所以选择什么样的工作,什么样的工作适合自己只有自己 最清楚,别人的建议只能作为参考。不要盲目听取其他人的说法,例如测试岗位相对开发没 前途,学不到什么东西类似的说法,毫无依据。也不要觉得选择银行事业单位就意味着平庸, 那么多 it 程序员过得好的也没几个,选择适合自己的才是最重要的,有得必有失,安稳的 工资相对少点,工资高的是拿命换钱,要知道自己想要的是什么。  关于找工作的心态 实习和内推是找工作的两大捷径,如果我们有这方面的机会最好不过,但是如果没有, 也不要太过于纠结,把你抱怨的时间用来踏实的学点东西,拿到一个差不多的 offer 没什么 问题。当你九月份开始找工作时候,一定周围有很多人通过实习和内退拿到了 offer,不要 受他们影响,更不要听他们去吹嘘,他们的实力未必比你强,仅仅是比你运气好有机会。通 过自己努力得到的更有成就感。 找工作如同打仗,成王败寇,面过了任你如何说的轻松,挂了怎么说都是悲剧。所以不 要被这些言论所影响,你只需要在整个过程中查漏补缺,别人什么样和你无关。 不要太在意网上的面经,每个人情况不同,他的做法未必适合你,他遇到的面试官和你 的也不同。  关于研究生阶段的学习 不知道是经历的太少还是考虑的太肤浅,我知道有很多人从研究生入学开始就将工作面 试作为一个目标,一如曾经本科入学就准备考研。如果说应试教育摧残了你的中学,摧残了 你的本科,那就尽量不要让它在毁了你最后的学生生涯。毕竟找工作和高考不同,不是单纯 的考试,你可以让自己的研究生生活更有意义。 由于种种原因导致现在 it 公司的招聘面试,逐渐也成了应试考试,看过面经的都知道, 无非就是“列书单”,所以很多人从入学开始就开始按照这个书单列表卖书看书,一直到找 工作。当然如果你按这个这么做了,找个满意的工作是不成问题的。但是你真正学到了多少? 当你花了两个月时间把《c++ primer》看完后,回忆一下能记得多少;然后马不停蹄的开始 《effective C++》《more effective C++》《深度探索 C++对象模型》《STL 源码剖析》等 等,看完之后真正理解的又有多少?不要觉得拿到好的 offer 人的水平都有多牛,年年进 BAT 都有很多水的不能再水的人,我说的水一部分是因为自身运气,刚好面试官问的很简单 或者问到自己刚刚会的一部分,一分部是由于只会纸上谈兵,他能把多线程的实现说的头头 是道,但实际上练个多线程程序都不会写。 我知道有很多人报有这样的想法,觉得先通过面试再说,拿到了门票以后工作在恶补。 如果你还有两个月要找工作,这样的想法完全正确,但是如果你刚刚入学,并且你不是一个 甘于平庸的人,那么还是踏实的学点东西吧。不要想着到工作以后再去恶补,正如很多人现 在所学的本应是你本科所应该学习的,你不停的在补,永远只能仰望着那些所谓的牛人。学 生生涯是学习的黄金时段,你有大把的时间去探索,工作后你的自由学习时间屈指可数。不 要幻想自己到时苦逼一点去追赶别人,那些比你牛的人更在努力,你拿什么追赶。你可以说 别人每晚 1 点钟睡觉,你苦逼到 2 点钟,既然这样为什么不利用当下的时间好好学点东西。 总之,我希望各位目标能够远大一点,如果是想搞技术,那你的目标绝不是进入某个公司。 BAT 每家公司的员工都有几万,你成为其中一名没有任何可值得骄傲和炫耀的。不要把目标 定的这么短小,相反你的目标是要比大多数人强。如果你有梦想,就一定要捍卫它。 那么如何才能学点有价值的东西?首先,书肯定是要看的,但是要讲究方法,不要抱着 一本书从第一页开始看到最后一页,而是找你需要的内容,要记住你看书是为了学东西的而 不是为了完成每天看多少页的任务。不要被书的作者牵着鼻子走,多问问自己为什么,你可 5
纸上得来终觉浅,绝知此事要躬行 以把自己想象成一个面试官,自己给自己想问题。另外,经典的书未必是好书,每个人的基 础不一样,有些经典的书未必你当时能消化的了,一如《深入理解计算机系统》,一旦你看 了几天感觉没什么收获或者看不太懂,那就不要在浪费时间了,你应该去看一些适合你的, 也许半年后再看就会柳暗花明。其次,经典的书有很多,但是时间是有限的,一般两年时间 能都精度的最多不过十几本,所以读书不要贪多,一本书读 3 遍完全好于一口气读三本书。 最后也是最重要的,注意实践。这里的实践可以是书上的课后题,可以是你自己想的小项目, 也可以是自己为了探索某个问题写的实验代码。在做项目的时候多多思考背后的原理,多多 探索底层的实现,所有的这些书上是不会告诉你的。总之,只有实践过,有些东西你才能真 正的掌握,之后让你经过一番痛苦的思考然后豁然开朗你才能长久的记忆。纸上得来终觉浅。 在学习中注意总结和对比,不同语言的对比,操作系统的对比,不同特性的对比,一如 java 的反射同 dll 的动态加载,一如空洞文件和程序的 bss 段。总结一样重要,一如动态 规划如何快速找到最优子结构,什么情况从前向后找,什么时候采用逆推,什么时候两边夹 逼,所有这些任何一本书都不会去讲,这需要自己总结出一套方法。总之要把自己脑海中的 知识点随着积累逐渐连成线,形成面。  关于研究生生活 在学习中不要吝啬分享,帮助别人的同时也可以提高自己,赠人玫瑰,手有余香。 不要把自己弄得太苦逼,学好玩嗨才是生活,所以要注重自己的学习效率而不是只在那 耗时间,劳逸结合才能事半功倍。有的人常常要把自己搞得累成狗,苦的一逼,想着现在的 苦逼换来将来的享受也不错。我觉得我们这个年纪的人就不要再有这种幼稚的想法了,如果 你还觉得高中老师欺骗你说苦逼这三年大学就能随便玩欺骗的还不够。生活本来就是一个无 止境的奋斗史,你的前进没有终点,更没有什么阶段让你可以停滞不前的。所以保持一个长 久的奋斗心态,奋斗在当下,享受也在当下,虽然你走的很慢,至少从未停止过。 一个人二十多岁出头的时候,除了仅剩不多的青春以外什么都没有,但你手头为数不多 的青春却能决定你变成一个什么样的人。 最后祝各位师弟师妹工作面试顺利!!! ——吕怡龙 6
纸上得来终觉浅,绝知此事要躬行 目录 第 1 章 第 2 章 LeetCode 题目详解 ......................................................................................................................... 1 吕怡龙(lvyilong316@163.com) ............................................................................................. 1 编程技巧 ................................................................................................................. 12 线性表 ..................................................................................................................... 12 2.1 数组 ................................................................................................................................. 12 2.1.1 Remove Duplicates from Sorted Array ....................................................... 12 2.1.2 Remove Duplicates from Sorted Array II ................................................. 14 2.1.3 Search in Rotated Sorted Array ................................................................. 15 2.1.4 Search in Rotated Sorted Array II ........................................................... 16 2.1.5 Median of Two Sorted Arrays ....................................................................... 17 2.1.6 Longest Consecutive Sequence ..................................................................... 18 2.1.7 Two Sum ............................................................................................................... 20 2.1.8 3Sum ..................................................................................................................... 21 2.1.9 3Sum Closest ..................................................................................................... 22 2.1.10 4Sum ................................................................................................................... 23 2.1.11 Remove Element ............................................................................................... 26 2.1.12 Next Permutation ........................................................................................... 27 2.1.13 Permutation Sequence ................................................................................... 29 2.1.14 Valid Sudoku ................................................................................................... 31 2.1.15 Trapping Rain Water ..................................................................................... 32 2.1.16 Rotate Image ................................................................................................... 34 2.1.17 Plus One ........................................................................................................... 36 2.1.18 Climbing Stairs ............................................................................................. 37 2.1.20 Set Matrix Zeroes ......................................................................................... 40 2.1.21 Gas Station ..................................................................................................... 42 2.1.22 Candy ................................................................................................................. 43 2.1.23 Single Number ................................................................................................. 44 2.1.24 Single Number II ........................................................................................... 45 2.2 单链表 ............................................................................................................................. 46 2.2.1 Add Two Numbers ............................................................................................... 46 2.2.2 Reverse Linked List II ................................................................................. 47 2.2.3 Partition List ................................................................................................. 48 2.2.4 Remove Duplicates from Sorted List ......................................................... 49 2.2.5 Remove Duplicates from Sorted List II ................................................... 50 2.2.6 Rotate List ....................................................................................................... 52 2.2.7 Remove Nth Node From End of List ............................................................. 52 2.2.8 Swap Nodes in Pairs ....................................................................................... 53 2.2.9 Reverse Nodes in k-Group ............................................................................. 54 2.2.10 Copy List with Random Pointer ................................................................. 56 2.2.11 Linked List Cycle ......................................................................................... 57 2.2.12 Linked List Cycle II ................................................................................... 58 7
纸上得来终觉浅,绝知此事要躬行 2.2.13 Reorder List ................................................................................................... 59 2.2.14 LRU Cache ......................................................................................................... 60 第 3 章 字符串 ............................................................................................................................... 61 3.1 Valid Palindrome ......................................................................................................... 61 3.2 Implement strStr() ..................................................................................................... 62 3.3 String to Integer (atoi) ......................................................................................... 64 3.4 Add Binary ..................................................................................................................... 66 3.5 Longest Palindromic Substring ............................................................................... 66 3.6 Regular Expression Matching ................................................................................... 70 3.7 Wildcard Matching ....................................................................................................... 71 3.8 Longest Common Prefix ............................................................................................... 72 3.9 Valid Number ................................................................................................................. 73 3.10 Integer to Roman ....................................................................................................... 75 3.11 Roman to Integer ....................................................................................................... 76 3.12 Count and Say ............................................................................................................. 77 3.13 Anagrams ....................................................................................................................... 78 3.14 Simplify Path ............................................................................................................. 78 3.15 Length of Last Word ................................................................................................. 80 第 4 章 栈和队列 ........................................................................................................................... 81 4.1 栈..................................................................................................................................... 81 4.1.1 Valid Parentheses ........................................................................................... 81 4.1.2 Longest Valid Parentheses ........................................................................... 81 4.1.3 Largest Rectangle in Histogram ................................................................. 84 4.1.4 Evaluate Reverse Polish Notation ............................................................. 85 4.2 队列 ................................................................................................................................. 87 5.1 二叉树的遍历 ................................................................................................................. 87 5.1.1 Binary Tree Preorder Traversal ................................................................. 87 5.1.2 Binary Tree Inorder Traversal ................................................................... 89 5.1.3 Binary Tree Postorder Traversal ............................................................... 91 5.1.4 Binary Tree Level Order Traversal ........................................................... 94 5.1.5 Binary Tree Level Order Traversal II ..................................................... 95 5.1.6 Binary Tree Zigzag Level Order Traversal ............................................. 97 5.1.7 Recover Binary Search Tree ......................................................................... 99 5.1.8 Same Tree ......................................................................................................... 100 5.1.9 Symmetric Tree ............................................................................................... 101 5.1.10 Balanced Binary Tree ................................................................................. 102 5.1.11 Flatten Binary Tree to Linked List ..................................................... 103 5.1.12 Populating Next Right Pointers in Each Node II ............................. 105 5.2 二叉树的构建 ............................................................................................................... 106 5.2.1 Construct Binary Tree from Preorder and Inorder Traversal ......... 106 5.2.2 Construct Binary Tree from Inorder and Postorder Traversal ....... 107 5.3 二叉查找树 ................................................................................................................... 108 5.3.1 Unique Binary Search Trees ....................................................................... 108 5.3.2 Unique Binary Search Trees II ................................................................. 110 8
分享到:
收藏