本文有些递归有些摘自以下链接:点击传送
我当时自己在编写代码的时候主要碰到的问题是:对于递归,处于一种一看就会,一写就跪的境界,然后我去找资料理解递归
递归有神人总结为以下模板,仅供参考:
function recursion(大规模)
{
if (end_condition)
{
end;
}
else
{ //在将问题转换为子问题描述的每一步,都解决该步中剩余部分的问题。
solve; //back;
recursion(小规模); //go;
}
}
下面实现的代码中并没有将基本操作定义成TreeNode的成员方法,其实想要封装好,将这些方法变成成员方法比较好。
二叉树的理解主要是递归概念的理解,二叉树是一种递归概念
还有一些二叉树的基本功能还没有实现,后序会更新。
1、通过先序遍历顺序来创建一颗二叉树
2、先序遍历、中序遍历和后序遍历(递归实现)、非递归方式实现这些遍历的会在后序补充更新。
3、计算二叉树的深度
4、计算二叉树的节点数
5、计算二叉树度数为1的节点数
6、计算二叉树的叶子节点
7、查找值为value