【LeetCode】剑指 Offer(9)
创始人
2024-05-26 23:44:23
0

目录

题目:剑指 Offer 25. 合并两个排序的链表 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 26. 树的子结构 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 25. 合并两个排序的链表 - 力扣(Leetcode)

题目的接口:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {}
};

解题思路:

我的思路是用一个简单的归并思想,

两个链表对比,

值小的就提取出来,

最后集合成一个新链表。

代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {//建一个哨兵位的头结点ListNode* head = new ListNode(0);//新链表的头指针ListNode* cur = head;//归并while(l1 && l2){if(l1->val < l2->val){cur->next = l1;l1 = l1->next;}else{cur->next = l2;l2 = l2->next;}cur = cur->next;}//如果有一个链表遍历完了,那就//直接用新链表的尾将剩下的那个链表接上cur->next = (l1 == nullptr ? l2 : l1);//返回新链表的头return head->next;}
};

过啦!!!

题目:剑指 Offer 26. 树的子结构 - 力扣(Leetcode)

题目的接口:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isSubStructure(TreeNode* A, TreeNode* B) {}
};

解题思路:

有关二叉树的遍历,一般就想到递归,

用递归遍历整个A树,

然后用每个根节点与B树比较,

如果递归到空,节点的值都相等,就返回true。

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool is_SubStructure(TreeNode* A, TreeNode* B){//如果递归到空节点,证明B是A的子结构if(B == nullptr){return true;}//如果A走到空节点,或者不相等,返回falseif(A == nullptr || A->val != B->val){return false;}//比较左孩子和右孩子return is_SubStructure(A->left, B->left) && is_SubStructure(A->right, B->right);}bool isSubStructure(TreeNode* A, TreeNode* B) {//判断树是否为空if(A == nullptr || B == nullptr){return false;}//递归比较节点                  //遍历二叉树return is_SubStructure(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);}
};

过啦!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...