二叉树知识点-labuladong

遇到一道二叉树的题目时的通用思考过程是:

  1. 是否可以通过遍历一遍二叉树得到答案?
    1. 如果可以,用一个 traverse 函数配合外部变量来实现。
  2. 是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?
    1. 如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值。
  3. 无论使用哪一种思维模式,
    1. 你都要明白二叉树的每一个节点需要做什么,需要在什么时候(前中后序)做。

一旦你发现题目和子树有关,那大概率要给函数设置合理的定义和返回值,在后序位置写代码了。

遇到子树问题,首先想到的是给函数设置返回值,然后在后序位置做文章。

「遍历」和「分解问题」两种思维方式

二叉树的构造问题一般都是使用「分解问题」的思路:

  1. 构造整棵树 = 根节点 + 构造左子树 + 构造右子树。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。