From 3646b36db5bbc3ce7c0e5fcd0b1f852c068b78b9 Mon Sep 17 00:00:00 2001 From: Linear-Enter Date: Mon, 5 Jul 2021 10:59:33 +0800 Subject: [PATCH] fix:typo --- ...5 - \344\272\214\345\217\211\346\240\221\343\200\213.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/\347\256\227\346\263\225/201.\347\262\276\350\257\273\343\200\212\347\256\227\346\263\225 - \344\272\214\345\217\211\346\240\221\343\200\213.md" "b/\347\256\227\346\263\225/201.\347\262\276\350\257\273\343\200\212\347\256\227\346\263\225 - \344\272\214\345\217\211\346\240\221\343\200\213.md" index 4127fcc7..3dac233a 100644 --- "a/\347\256\227\346\263\225/201.\347\262\276\350\257\273\343\200\212\347\256\227\346\263\225 - \344\272\214\345\217\211\346\240\221\343\200\213.md" +++ "b/\347\256\227\346\263\225/201.\347\262\276\350\257\273\343\200\212\347\256\227\346\263\225 - \344\272\214\345\217\211\346\240\221\343\200\213.md" @@ -45,13 +45,13 @@ function visitTree(node: TreeNode) { 前序遍历第一个访问的一定是根节点,因此 `3` 一定是根节点,然后我们在中序遍历找到 `3`,这样 **左边就是所有左子树的中序遍历结果,右边就是所有右子树的中序遍历结果**,我们只要再找到 **左子树的前序遍历结果与右子树的前序遍历结果**,就可以递归了,终止条件是左或右子树只有一个值,那样就代表叶子节点。 -那么怎么找左右子树的前序遍历呢?上面例子中,我们找到了 `3` 的左右子树的中序遍历结果,由于前序遍历优先访问左子树,因此我们数一下中序遍历中,`3` 左边的数量,只有一个 `9`,那么我们从前序遍历的 `3,9,20,15,7` 在 `3` 之后推一位,那么 `9` 就是左子树前序遍历结果,`9` 后面的 `20,15,7` 就是柚子树的前序遍历结果。 +那么怎么找左右子树的前序遍历呢?上面例子中,我们找到了 `3` 的左右子树的中序遍历结果,由于前序遍历优先访问左子树,因此我们数一下中序遍历中,`3` 左边的数量,只有一个 `9`,那么我们从前序遍历的 `3,9,20,15,7` 在 `3` 之后推一位,那么 `9` 就是左子树前序遍历结果,`9` 后面的 `20,15,7` 就是右子树的前序遍历结果。 最后只要递归一下就能解题了,我们将输入不断拆解为左右子树的的输入,直到达到终止条件。 -解决此题的关键是,不仅要直到如何写前中后序遍历,还要知道前序遍历第一个节点是根节点,后序遍历最后一个节点是根节点,中序遍历以根节点为中心,左右分别是其左右子树,这几个重要延伸特征。 +解决此题的关键是,不仅要知道如何写前中后序遍历,还要知道前序遍历第一个节点是根节点,后序遍历最后一个节点是根节点,中序遍历以根节点为中心,左右分别是其左右子树,这几个重要延伸特征。 -说完了反向,我们说正向,即递归一颗二叉树。 +说完了反向,我们说正向,即递归一棵二叉树。 其实二叉树除了递归,还有一种常见的遍历方法是利用栈进行广度优先遍历,典型题目有从上到下打印二叉树。