数据结构->二叉树初阶学习心得

二叉树

二叉树节点定义

struct BinTreeNode
{
   
	TreeNodeType val;
	BinTreeNode *left;
	BinTreeNode *right;
}

二叉树涉及算法思想

递归

递归要点:

  1. 这个递归函数的功能是什么,怎样调用这个函数,即设计好递归函数的返回值和参数列表
  2. 什么时候应该结束这个递归,它的边界条件(出口)是什么?
  3. 在非边界情况时,怎样从第n层转变成第n+1层 (递推公式)
    注:
    递归思想最重要的一点就是:不要去关函数的内部细节【避免钻牛角尖,容易混】,只需要关注函数作用以及输入输出即可。

例:二叉树最大深度

给定一个二叉树,找出其最大深度。
实例:
3
/
9 20
/
15 7
最大深度 3

递归实现:
1.函数功能->找出最大深度;返回值->最大深度(int型);参数->节点指针
2.边界:当root为null时,返回高度为0;
3.获取最大高度->左子树与右子树中较大值+1

int maxDepth(TreeNode *root) {
   
        if(root == null) 
        	return 0;	//边界条件
        return 

你可能感兴趣的:(数据结构)