递归讲解
前言
简述下最近所学的一些比较重要的算法,此文章主要对递归在链表中树中的作用进行说明。
一、递归是什么?
递归简单的说就是自己调用自己。
递归的条件:
1、子问题和原问题具有相同的条件或者方法
2、递归的过程其实就是不断的将问题缩小,我们每次将问题缩小的时候都会用到上一个状态。
大家也可以参照递归的定义:为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来定义自己的方法,称为递归定义。形式如 f(n) = n*f(n-1), if n=0,f(n)=1.
二、递归在树中作用(三种遍历方式)
1.前序遍历
在这里我将递归单独写出来方便理解
public void proOrder(TreeNode root){
dfs(root);
}
public void dfs(TreeNode root){
if(root