From 9a15f909b16abfae09790e8f7a1bb9c045f01781 Mon Sep 17 00:00:00 2001 From: zjd <12321619+realpeanut@users.noreply.github.com> Date: Wed, 12 May 2021 10:59:58 +0800 Subject: [PATCH 1/4] =?UTF-8?q?Update=20=E4=BA=8C=E5=8F=89=E6=A0=91?= =?UTF-8?q?=E7=90=86=E8=AE=BA=E5=9F=BA=E7=A1=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/二叉树理论基础.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/problems/二叉树理论基础.md b/problems/二叉树理论基础.md index 726fc7a8..2230d404 100644 --- a/problems/二叉树理论基础.md +++ b/problems/二叉树理论基础.md @@ -46,7 +46,7 @@ ### 二叉搜索树 -前面介绍的书,都没有数值的,而二叉搜索树是有数值的了,**二叉搜索树是一个有序树**。 +前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,**二叉搜索树是一个有序树**。 * 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; @@ -164,7 +164,7 @@ struct TreeNode { 大家会发现二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子. -这里要提醒大家要注意二叉树节点定义的书写方式。 +这里要提醒大家要注意二叉树节点定义的写方式。 **在现场面试的时候 面试官可能要求手写代码,所以数据结构的定义以及简单逻辑的代码一定要锻炼白纸写出来。** @@ -193,7 +193,13 @@ Python: Go: - +``` +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} +``` From b09f97cf4e2c1220d7dac2359687211bd2dfbb2a Mon Sep 17 00:00:00 2001 From: zjd <12321619+realpeanut@users.noreply.github.com> Date: Wed, 12 May 2021 11:11:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?Update=20=E4=BA=8C=E5=8F=89=E6=A0=91?= =?UTF-8?q?=E7=90=86=E8=AE=BA=E5=9F=BA=E7=A1=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/二叉树理论基础.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/problems/二叉树理论基础.md b/problems/二叉树理论基础.md index 2230d404..60e65c69 100644 --- a/problems/二叉树理论基础.md +++ b/problems/二叉树理论基础.md @@ -164,7 +164,7 @@ struct TreeNode { 大家会发现二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子. -这里要提醒大家要注意二叉树节点定义的写方式。 +这里要提醒大家要注意二叉树节点定义的书写方式。 **在现场面试的时候 面试官可能要求手写代码,所以数据结构的定义以及简单逻辑的代码一定要锻炼白纸写出来。** @@ -195,9 +195,9 @@ Python: Go: ``` type TreeNode struct { - Val int - Left *TreeNode - Right *TreeNode + Val int + Left *TreeNode + Right *TreeNode } ``` From 4d5ed437ebbe293d3b92e7158df410d3770115ac Mon Sep 17 00:00:00 2001 From: zjd <12321619+realpeanut@users.noreply.github.com> Date: Wed, 12 May 2021 11:40:40 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E9=80=92?= =?UTF-8?q?=E5=BD=92=E9=81=8D=E5=8E=86=E5=A2=9E=E5=8A=A0golang=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/二叉树的递归遍历.md | 52 ++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/problems/二叉树的递归遍历.md b/problems/二叉树的递归遍历.md index 6c005191..bd3a9e1c 100644 --- a/problems/二叉树的递归遍历.md +++ b/problems/二叉树的递归遍历.md @@ -122,6 +122,58 @@ Python: Go: +前序遍历: +``` +func PreorderTraversal(root *TreeNode) (res []int) { + var traversal func(node *TreeNode) + traversal = func(node *TreeNode) { + if node == nil { + return + } + res = append(res,node.Val) + traversal(node.Left) + traversal(node.Right) + } + traversal(root) + return res +} + +``` +中序遍历: + +``` +func InorderTraversal(root *TreeNode) (res []int) { + var traversal func(node *TreeNode) + traversal = func(node *TreeNode) { + if node == nil { + return + } + traversal(node.Left) + res = append(res,node.Val) + traversal(node.Right) + } + traversal(root) + return res +} +``` +后序遍历: + +``` +func PostorderTraversal(root *TreeNode) (res []int) { + var traversal func(node *TreeNode) + traversal = func(node *TreeNode) { + if node == nil { + return + } + traversal(node.Left) + traversal(node.Right) + res = append(res,node.Val) + } + traversal(root) + return res +} +``` + From 3e6a1b2d35a489300c63733f0163331764b3dbbf Mon Sep 17 00:00:00 2001 From: zjd <12321619+realpeanut@users.noreply.github.com> Date: Wed, 12 May 2021 11:44:30 +0800 Subject: [PATCH 4/4] =?UTF-8?q?Update=20=E4=BA=8C=E5=8F=89=E6=A0=91?= =?UTF-8?q?=E7=9A=84=E9=80=92=E5=BD=92=E9=81=8D=E5=8E=86.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/二叉树的递归遍历.md | 60 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/problems/二叉树的递归遍历.md b/problems/二叉树的递归遍历.md index bd3a9e1c..02d4b060 100644 --- a/problems/二叉树的递归遍历.md +++ b/problems/二叉树的递归遍历.md @@ -125,17 +125,17 @@ Go: 前序遍历: ``` func PreorderTraversal(root *TreeNode) (res []int) { - var traversal func(node *TreeNode) - traversal = func(node *TreeNode) { - if node == nil { - return - } - res = append(res,node.Val) - traversal(node.Left) - traversal(node.Right) + var traversal func(node *TreeNode) + traversal = func(node *TreeNode) { + if node == nil { + return } - traversal(root) - return res + res = append(res,node.Val) + traversal(node.Left) + traversal(node.Right) + } + traversal(root) + return res } ``` @@ -143,34 +143,34 @@ func PreorderTraversal(root *TreeNode) (res []int) { ``` func InorderTraversal(root *TreeNode) (res []int) { - var traversal func(node *TreeNode) - traversal = func(node *TreeNode) { - if node == nil { - return - } - traversal(node.Left) - res = append(res,node.Val) - traversal(node.Right) + var traversal func(node *TreeNode) + traversal = func(node *TreeNode) { + if node == nil { + return } - traversal(root) - return res + traversal(node.Left) + res = append(res,node.Val) + traversal(node.Right) + } + traversal(root) + return res } ``` 后序遍历: ``` func PostorderTraversal(root *TreeNode) (res []int) { - var traversal func(node *TreeNode) - traversal = func(node *TreeNode) { - if node == nil { - return - } - traversal(node.Left) - traversal(node.Right) - res = append(res,node.Val) + var traversal func(node *TreeNode) + traversal = func(node *TreeNode) { + if node == nil { + return } - traversal(root) - return res + traversal(node.Left) + traversal(node.Right) + res = append(res,node.Val) + } + traversal(root) + return res } ```