美文网首页
代码随想录算法训练营第二十天|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