DAY12

77 阅读2分钟

第六章 二叉树part01

理论基础

需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义

文章讲解:programmercarl.com/%E4%BA%8C%E…

递归遍历 (必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单

题目链接/文章讲解/视频讲解:programmercarl.com/%E4%BA%8C%E…

迭代遍历 (基础不好的录友,迭代法可以放过)

题目链接/文章讲解/视频讲解:programmercarl.com/%E4%BA%8C%E…

统一迭代 (基础不好的录友,迭代法可以放过)

这是统一迭代法的写法, 如果学有余力,可以掌握一下

题目链接/文章讲解:programmercarl.com/%E4%BA%8C%E…

层序遍历

看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大家可以很快刷了十道题。

题目链接/文章讲解/视频讲解:programmercarl.com/0102.%E4%BA…

笔记

递归遍历

每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法!

  1. 确定递归函数的参数和返回值:  确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。
  2. 确定终止条件:  写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。
  3. 确定单层递归的逻辑:  确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。
迭代遍历
  • 前序遍历
  • 后序遍历
    • 访问+处理
  • 中序遍历
    • 先一路访问到最左边,并且依次将左边入栈;
    • 当左边为空,就将栈中pop出一个出来,同时pushu到结果res数组,然后将指针指向right
层序遍历