题目来源于知识星球—英雄算法联盟,六月算法集训专题
目录
前言
跟随英雄算法联盟博主—英雄哪里出来,每天完成相应的算法练习,一个月后,必定会有所成长!
一、1361.验证二叉树(中等)
1.题目描述
2.解题思路
下次再战!
3.代码演示(C++)
4.题目链接
二、1367.二叉树中的列表(中等)
1.题目描述
2.解题思路
递归的思想。声明check函数,判断某个节点是否为根的子树,是否能够从根开始
往下找到一条由head链表组成的路径。如果root为空,返回head==NULL;否则,
如果head为空,返回true;如果root->val和head->val不一致,返回false;否
则递归遍历root的左子树和右子树,递归判断,head前进一位。最后对每个节点
都调用check函数,找到返回true。
3.代码演示(C++)
class Solution
{
bool check(TreeNode *root, ListNode *head)
{
if(root == NULL)
{
return (head == NULL);
}
if(head == NULL)
{
return true;
}
if(root->val != head->val)
{
return false;
}
return check(root->left, head->next) || check(root->right, head->next);
}
public:
bool isSubPath(ListNode* head, TreeNode* root)
{
if(check(root, head))
{
return true;
}
if(root == NULL)
{
return false;
}
return isSubPath(head, root->left) || isSubPath(head, root->right);
}
};
4.题目链接
三、1457.二叉树中的伪回文路径(中等)
1.题目描述
2.解题思路
实力不允许,下次再战吧。
3.代码演示(C++)
4.题目链接
四、1373.二叉搜索树的最大键值和(困难)
1.题目描述
2.解题思路
困难题直接跑路!
3.代码演示(C++)
4.题目链接
总结
每天跟随英雄哥学习相关的算法,一个月会收获很多,如果你想了解更多关于知识星球的内容,欢迎联系我!