[LeetCode] 系统刷题4_Binary Tree & Divide and Conquer
The most important : [LeetCode] questions conclustion_BFS, DFS
参考[LeetCode] questions conlusion_InOrder, PreOrder, PostOrder traversal 可以对binary tree进行遍历。
此处说明Divide and Conquer 的做法,其实跟recursive的做法很像,但是将结果存进array并且输出,最后conquer (这一步worst T:O(n)) 起来,所以时间复杂度可以从遍历O(n) -> O(n^2).
实际上代码是一样, 就是把[root.val] 放在先, 中, 后就是pre, in, post order了.
1) Preorder traversal
class Solution:
def preOrder(self, root):
if not root: return []
left = self.preOrder(root.left)
right = self.preOrder(root.right)
return [root.val] + left + right # worst T: O(n)
2)
Inorder traversal
class Solution:
def inOrder(self, root):
if not root: return []
left = self.preOrder(root.left)
right = self.preOrder(root.right)
return left + [root.val] + right # worst T: O(n)
3) Postorder traversal
class Solution:
def postOrder(self, root):
if not root: return []
left = self.preOrder(root.left)
right = self.preOrder(root.right)
return left + right + [root.val] # worst T: O(n)
[LeetCode] 104. Maximum Depth of Binary Tree_Easy tag: DFS
[LeetCode] 110. Balanced Binary Tree_Easy tag: DFS
[LeetCode] 236. Lowest Common Ancestor of a Binary Tree_ Medium tag: DFS, Divide and conquer
[LeetCode] 257. Binary Tree Paths_ Easy tag: DFS
[LeetCode] 129. Sum Root to Leaf Numbers_Medium tag: DFS
[LeetCode] 112. Path Sum_Easy tag: DFS
[LeetCode] 437. Path Sum III_ Easy tag: DFS
[LeetCode] 124. Binary Tree Maximum Path Sum_ Hard tag: DFS recursive, Divide and conquer
[LeetCode] 687. Longest Univalue Path_Easy tag: DFS recursive
[LeetCode] 298. Binary Tree Longest Consecutive Sequence_Medium tag: DFS recursive
[LeetCode] 549. Binary Tree Longest Consecutive Sequence II_ Medium tag: DFS recursive
Binary Search Tree
[LeetCode] 98. Validate Binary Search Tree_Medium
Search Range in a Binary Search Tree
[LeetCode] 700. Search in a Binary Search Treer_Easy_tag: Binary Search Tree
[LeetCode] 285. Inorder Successor in BST_Medium tag: Inorder Traversal
[LeetCode] 173. Binary Search Tree Iterator_Medium_tag: Binary Search Tree
[LeetCode] 701. Insert into a Binary Search Tree_Medium_tag: Binary Search Tree
Remove Node in Binary Search Tree
Steps:
1. Find the node
2. Find the maximum node in the left
subtree
3. Replace the node with the maximum
node in the left subtree.
Special Cases:
1. The node doest have a left child.
2. The maximum node in the left subtree
has a left child.
3. The node is the root of the tree.
[LeetCode] 系统刷题4_Binary Tree & Divide and Conquer的更多相关文章
- [LeetCode] 系统刷题5_Dynamic Programming
Dynamic Programming 实际上是[LeetCode] 系统刷题4_Binary Tree & Divide and Conquer的基础上,加上记忆化的过程.就是说,如果这个题 ...
- [LeetCode] 系统刷题1_代码风格及边界
代码风格 说自己不清楚的算法,比如KMP,如果解释不清楚或者写不出来的算法建议不提 注意代码的缩进以及空格的合理运用,使得代码看起来比较整洁有条理 注意边界的条件以及越界 误区: 算法想出来还仅仅不够 ...
- [LeetCode] 系统刷题3_Binary search
可以参考 [LeetCode] questions conclusion_ Binary Search
- [LeetCode] 系统刷题2_排列组合
要用到backtracking,是否要跟backtracking放到一起总结? 适用范围: 几乎所有搜索问题 什么时候输出 哪些情况需要跳过 相关题目: [LeetCode] 78. Subsets ...
- [LeetCode] 系统刷题6_Linked List
1. Dummy Node 2. Basic skills [LeetCode] 206. Reverse Linked List_Easy tag: Linked List 2. Fast slow ...
- LeetCode的刷题利器(伪装到老板都无法diss你没有工作)
在工程效率大行其道的今天,如果不会写点代码以后也不容易在测试圈混下去.今天给大家推荐一个LeetCode的刷题利器,可以伪装到连你老板在这里走过去都无法确认你是在干活呢,还是在干活呢. LeetCod ...
- leetcode top-100-liked-questions刷题总结
一.起因 宅在家中,不知该做点什么.没有很好的想法,自己一直想提升技能,语言基础自不必言,数据结构还算熟悉,算法能力一般.于是乎,就去刷一通题. 刷题平台有很多,我选择了在leetcode进行刷题.回 ...
- LeetCode 高效刷题路径
LeetCode 高效刷题路径 Hot 100 https://leetcode.com/problemset/hot-100/ https://leetcode-cn.com/problemset/ ...
- leetcode 算法刷题(一)
今天开始刷Leetcode上面的算法题.我会更新我刷题过程中提交的代码(成功和不成功的都有)和比较好的解法 第二题 Add Two Numbers 题目的意思:输入两个链表,这两个链表都是倒序的数字, ...
随机推荐
- 【iCore4 双核心板_uC/OS-II】例程六:信号量——任务同步
一.实验说明: 信号量是一个多任务内核提出的一个协议机构,上一个实验中我们介绍了信号量访问共享资源 的功能,其实信号量最初是用来控制访问共享资源的,它还可以用来同步一个中断服务函数和一个任 务,或者同 ...
- Windows 10下安装配置Caffe并支持GPU加速(修改版)
基本环境 建议严格按照版本来 - Windows 10 - Visual Studio 2013 - Matlab R2016b - Anaconda - CUDA 8.0.44 - cuDNN v4 ...
- centos图形界面,vncserver
yum -y groupinstall "Server with GUI" RHEL7 安装图形界面1. 以root角色运行以下命令来安装TigerVNC server yum i ...
- Visual studio中编译和使用libpng和zlib
Visual studio中编译和使用libpng和zlib https://blog.csdn.net/jinzhuojun/article/details/7972747
- 3.静态AOP实现-代理模式
通过代理模式实现在RegUser()方法本身业务前后加上一些自己的功能,如:BeforeProceed和AfterProceed,即不修改UserProcessor类又能增加新功能 定义1个用户接口, ...
- layui动态数据表格-分页
数据结构 $list = [ [,'], [,] ]; $json[; $json['; $json[; $json['data'] = $list; return json($json); 代码: ...
- geoserver 图层样式
1.Styled Layer Descriptor 标准描述了稳当的结构合使用规则.一个文档包含了符号定义和绘制规则,那么这个文档就叫做Styled Layer Desciptor(SLD)样式,它是 ...
- 超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)
https://blog.csdn.net/u014732824/article/details/84952848 int i = System.Text.Encoding.Default.GetBy ...
- C# 鼠标移动Winform窗体内或者panel容器内的控件 显示虚线/实现虚线框来确定位置
C# 鼠标移动WinForm窗体或者panel容器内的控件 移动虚线/实现虚线框来确定位置 1.用到的方法介绍 今天,根据领导指示指导移动容器内的控件,生成虚线框,使用 ControlPaint.Dr ...
- super方法 调用父类的方法
描述 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复 ...