美文网首页
代码随想录算法训练营第二十天|654.最大二叉树、617.合并二

代码随想录算法训练营第二十天|654.最大二叉树、617.合并二

作者: eagleX | 来源:发表于2023-08-27 22:24 被阅读0次

    654.最大二叉树 

    思路:

    使用前序遍历,先构造中间节点

    递归三部曲:

    1.确定递归函数的参数和返回值

    参数传入的是存放元素的数组,返回该数组构造的二叉树的头结点

    2.确定终止条件

    当递归遍历的时候,如果传入的数组大小为1,说明遍历到了叶子节点

    3.确定单层递归的逻辑

    找到数组中最大的值和对应的下标, 最大的值构造根节点,下标用来下一步分割数组

    最大值所在的下标左区间 构造左子树

    最大值所在的下标右区间 构造右子树

    617.合并二叉树 

    思路:同级操作,前中后都可以

    递归三部曲:

    1.确定递归函数的参数和返回值

    要合入两个二叉树,那么参数至少是要传入两个二叉树的根节点,返回值就是合并之后二叉树的根节点

    2.确定终止条件

    如果t1 == NULL 了,两个树合并就应该是 t2

    如果t2 == NULL,那么两个数合并就是t1

    3.确定单层递归的逻辑

    把两棵树的元素加到一起

    t1->val+=t2->val;// 中

    t1->left=mergeTrees(t1->left,t2->left);// 左

    t1->right=mergeTrees(t1->right,t2->right);// 右

    700.二叉搜索树中的搜索 

    递归三部曲:

    1.确定递归函数的参数和返回值

    参数传入的就是根节点和要搜索的数值,返回的就是以这个搜索数值所在的节点

    2.确定终止条件

    if(root==NULL||root->val==val) returnroot;

    3.确定单层递归的逻辑

    二叉搜索树的节点是有序的,可以有方向的去搜索

    98.验证二叉搜索树

    递归中序遍历将二叉搜索树转变成一个数组,只要比较一下,这个数组是否是有序的,注意二叉搜索树中不能有重复元素

    相关文章

      网友评论

          本文标题:代码随想录算法训练营第二十天|654.最大二叉树、617.合并二

          本文链接:https://www.haomeiwen.com/subject/ipnwmdtx.html