




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
互联网人才+油站!极客班携手网易云课堂,针对热门IT互联网岗位,联合业内
大牛,紧贴企业实际需求,量身打造精品实战课程。专业课程+项目碾压顶尖
技能私授•学员混搭线上组队贴合企业实际需求互动交流
答疑••一线项目实战操练业内大牛辅导点评二叉树和分治算法大纲二叉树介绍先序/中序/后序Preorder/inorder/postorder分治算法Divide
&
Conquer二叉树的宽度优先遍历二叉搜索树翻转二叉树Homebrew
作者Mark
Howell面试被拒,因为不会翻转二叉树?1/
\1/
\2
3=>3
2/\44二叉树二叉树,是指对于树中的每个节点而言,至多有左右两个子节点,即任意节点的度小于等于2概念高度:从根节点到某个节点的路径长度称为该节点的层数(level),根节点为第0层,非根节点的层数是其父节点的层数加1。树的高度定义为该树中层数最大的叶节点的层数加1,即相当于于从根节点到叶节点的最长路径加1。满二叉树(full
binary
tree):如果一棵二叉树的任何结点,或者是叶节点,或者左右子树都存在,则这棵二叉树称作满二叉树。完全二叉树(completebinarytree):如果一棵二叉树最多只有最下面的两层节点度数可以小于2,并且最下面一层的节点都集中在该层最左边的连续位置上,则此二叉树称作完全二叉树。Binary
Tree
DFS
TraversalBinary
Tree
TraversalPreorder:
A
BDE
CPostorder:
DEB
C
Ainorder:
DBE
A
CAB
CD
EDFS
代码void
preOrderTraversal(TreeNode
*root)
{if
(!root)
{return;}visit(root);preOrderTraversal(root->left);preOrderTraversal(root->right);}void
inOrderTraversal(TreeNode
*root)
{if
(!root)
{return;}inOrderTraversal(root->right);visit(root);inOrderTraversal(root->left);}void
postOrderTraversal(TreeNode
*root)
{if
(!root)
{return;}postOrderTraversal(root->left);postOrderTraversal(root->right);visit(root);}Traverse
IterationStack:
Preorder
/dolphin0520/archive/2011/08/25/2153720.htmlFind
Next
in
Binary
TreeIn-order
traverse
a
binary
tree
with
parent
links,
find
the
next
node
tovisit
given
a
specific
node.Followup:
without
parent
link?Divide
&
Conquer
Algorithm分解(Divide):将原问题分解为若干子问题,这些子问题都是原问题规模较小的实例。解决(Conquer):递归地求解各子问题。如果子问题规模足够小,则直接求解。合并(Combine):将所有子问题的解合并为原问题的解。Merge
SortQuick
SortMost
of
the
Binary
Tree
Problems
!Tree
DepthCompute
the
depth
of
a
binary
treeDepth(TreeNode
*node)
{if
(node
==
NULL)return
0;elsereturn
max(treeDepth(node->left),treeDepth(node->right))
+
1;}SubtreeTree1
and
Tree2
are
both
binary
trees
nodes
having
value,
determine
ifTree2
is
a
subtree
of
Tree1.Rebuild
Binary
TreePre-order
+
In-orderPreorder
sequence:
A
B
D
E
C
FInorder
sequence:
D
B
E
A
F
CA/
\B
C/
\
/D
E
FBalanced
Binary
TreeDetermine
if
a
binary
tree
is
a
balanced
tree.一颗二叉树是平衡的,当且仅当左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。Path
SumGet
all
the
paths
(always
starts
from
the
root)
in
a
binary
tree,
whosesum
would
be
equal
to
given
value.Lowest
Common
Ancestor(LCA)Given
a
binary
tree
and
two
nodes.
Find
the
lowest
common
ancestorof
the
two
nodes
in
the
tree.For
example,
the
LCA
of
D
&
E
isB.AB
CD
EShortest
Path
in
Two
NodesBinary
Tree
DFS
TraversalTemplate:
/dongfeiwww/boolan/blob/master/class4/dfs.javaBinary
Tree
BFS
TraversalTemplate:
/dongfeiwww/boolan/blob/master/class4/bfs.cBinary
Tree
to
Linked
ListsCovert
a
binary
tree
to
linked
lists.
Each
linked
list
is
correspondent
toall
the
nodes
at
the
same
level.Binary
Tree
Level
Order
Traversal2
Queues1
Queue
+
Dummy
Node1
Queue
(best)Binary
Tree
Level
Order
Traversal
IIGivena
binary
tree,
return
thebottom-up
level
order
traversal
of
its
nodes'values.
(ie,
from
left
to
right,
level
by
level
from
leaf
to
root).For
example:
Given
binary
tree
{3,9,20,#,#,15,7},3/
\9
20/
\15
7return
itsbottom-up
level
order
traversal
as:[[15,7],[9,20],[3]]Binary
Tree
Zigzag
Level
Order
TraversalGiven
a
binary
tree,
return
the
zigzag
levelorder
traversal
of
its
nodes'
values.(ie,
from
left
to
right,
then
right
to
left
for
the
next
level
and
alternate
between).For
example:
Given
binary
tree
{3,9,20,#,#,15,7},3/
\9
20/
\15
7return
its
zigzag
level
order
traversal
as:[[3],[20,9],[15,7]]Binary
Search
TreeBinary
Search
Tree二分查找树(Binary
Search
Tree,
BST)是二叉树的一种特例,对于二分查找树的任意节点,该节点
的数值一定比左子树的所有节点的值大比右子树的所有节点的值小(该节点
的数值一定比左子树的所有节点的值小比右子树的所有节点的值大)。Is
Binary
Search
Treebool
isValidBST(TreeNode*
root)
{if(root==NULL)return
true;else
if(root->left&&!root->right)return
isValidBST(root->left)&&(root->val>root->left->val);else
if(!root->left&&root->right)return
isValidBST(root->right)&&(root->val<root->right->val);else
if(root->left&&root->right)return
isValidBST(root->left)&&isValidBST(root->right)&&(root->val>root->left->val)&&(root->val<root->right->val);elsereturn
true;}10/
\5
15/
\6
20错误例子:Print
Range
in
a
Binary
Search
TreeGiven
two
values
k1
and
k2
(where
k1
<
k2)
and
a
root
pointer
to
aBinary
Search
Tree.
all
the
keys
of
tree
in
range
k1
to
k2.
i.e.
printall
x
such
that
k1<=x<=k2
and
x
is
a
key
of
given
BST.
all
the
keysin
increasing
order.For
example,
if
k1
=
10
and
k2
=
22,
then
your
function
should
print12,20
and
22.Sorted
Array
to
Binary
Search
TreeConvert
a
sorted
array(
increasing
order
)
to
a
balanced
BST.Input:
Array
{1,
2,
3}Output:
A
BalancedBST2/
\1
3Input:
Array
{1,
2,
3,
4}Output:
A
BalancedBST3/
\2
4/1:Given
a
binary
tree,
check
whether
it
is
a
mirror
of
itself
(ie,
symmetricaround
its
center).For
example,
this
binar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老金储蓄保证金合同
- 电子元器件加工分包协议
- 农业经理人应试能力的重点分析试题及答案
- 探讨农业职业经理人考试的复习策略试题及答案
- 核心内容的二级建造师试题及答案
- 九年级历史下册 第二单元 第5课《文学艺术的繁荣》教学设计2 华东师大版
- 人教版八下道德与法治教学设计:2.2加强宪法监督
- Unit 4 Eat well Section A 3a-3d教案 2024-2025学年人教版(2024)七年级英语下册
- 智能城市与绿色空间:探索未来休闲公园项目的可行性
- 优化基本医疗卫生服务的策略与实施路径
- 机器人辅助腹腔镜腹膜外根治性膀胱全切除课件
- 七年级英语上册用所给词的适当形式填空
- ANSCO智能巡检机器人
- 室内设计服务内容及设计深度要求
- 全文解读2022年新制订《农村集体经济组织财务制度》PPT课件
- 物业公司组织架构
- 绘本《大大行我也行》PPT
- 设计输入和参考现有平台技术协议222m helideck proposal for gshi
- 小学生A4日记本打印版(田字格+拼音格)(共1页)
- 北京市教育委员会关于建立民办学校办学情况年度报告制度的通知
- 桥墩尺寸经验值
评论
0/150
提交评论