二叉树题目 经常 使用到 递归
max(左,右) + 1 = 整个树的最大深度
从而 子问题和原问题是相似的
上一级问题 可以返回去给上上一级 从而就是用递归
不断递归下去 总会有尽头 也就是递归的边界条件=空节点 可以返回0作为答案
最后放进去的 最先出来 叫做 栈
定义一个全局变量
左右同时递归,如果遇到一方没了 那就返回
然后 一直递归到两边都空 最后再 用 全局变量等于最大的计数
斐波那契数列:
return fib(n-1) + fib(n-2);
“node->value; // 访问node指向的结构体的value成员 node->left; // 访问node指向的结构体的left成员 node->right; // 访问node指向的结构体的right成员
等同于==
(node).value; (node).left; (*node).right;”
int leftdepth = getdepth(node->left); // 通过node指针访问其左子节点,并递归计算左子树的深度 int rightdepth = getdepth(node->right); // 通过node指针访问其右子节点,并递归计算右子树的深度