每日OJ——206.反转链表(链表)1.题目:206.反转链表(链表)2.方法讲解:2.1解法:2.1.1.图文解析2.1.2.代码实现2.1.3.提交通过展示1.题目:206.反转链表(链表)2.方法讲解:2.1解法:2.1.1.图文解析考虑遍历链表,并在访问各节点时修改next引用指向,算法流程见注释。1234567891011122.1.2.代码实现2.1.3.提交通过展示
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。否则,返回 false /***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/boolhasCycle(structListNode*head
1.返回倒数第k个节点题解:定义两个快慢指针或着快慢变量。1.让fast先走k-1步 2.fast走完,在跟show一起走3. 走到fast.next==null结束,返回show.val publicintkthToLast(ListNodehead,intk){if(k0||head==null){return-1;}ListNodefast=head;ListNodeshow=head;//fast先走k-1步while(k-1!=0){fast=fast.next;if(fast==null){return-1;}k--;}//fast、show一起走while(fast.next
复杂度的OJ例题一、消失的数字1.思路一2.思路二3.思路三二、旋转数组1.思路一2.思路二3.思路三一、消失的数字数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(N)时间内完成吗?链接:力扣:消失的数字1.思路一排序+遍历:如果下一个数据不等于上一个数据加1,那么下一个数据就是那个消失的数字。时间复杂度:O(N*LogN)由于这个时间复杂度时间复杂度过高,本思路不再冗余,赘述。2.思路二利用等差数列公式:从0加到n,然后再减去这个数组中的所有数字,那么最终所得的差就是缺失的数字。时间复杂度:O(N)代码如下:#includeintmissing
前言:本节博客将讲解单链表的反转,合并有序链表,寻找中间节点及约瑟夫问题文章目录一、反转链表二、合并有序链表三、链表的中间结点四、环形链表的约瑟夫问题一、反转链表要反转链表,我们需要遍历链表并改变每个节点的next指针,使其指向其前一个节点。为了完成这个任务,我们需要三个指针:prev、cur和next_node。prev:保存当前节点的前一个节点。初始化为NULL,因为链表的新头部(原始链表的尾部)的next指针将指向NULL。cur:表示当前正在处理的节点。next_node:保存当前节点的下一个节点。structListNode*reverseList(structListNode*he
目录题型一:反转单链表思路解析OJ题实例解题代码题型二:快慢指针思路解析OJ题实例解题代码两类题型的结合题型一:反转单链表思路解析反转一个链表主要是想让第一个节点指向NULL,第二个节点指向第一个,以此类推。那么我们不难想到,想要反转其中一个节点,两个指针肯定是不够的,所以这就要求我们定义三个指针:分别指向当前节点n2,前一个节点n1,后一个节点n3。这里定义的三个指针主要作用:n1是为了能让当前节点能指向前一个节点地址,而n1就是记录前一个节点的地址,n3是为了在反转当前节点后,能找到后一个节点的地址。那么定义一个循环后依此思路便可反转链表了。当然循环结束的条件为n3==NULL,那么再仔细
目录 一、相同的树 二、单值二叉树 三、对称二叉树 四、树的遍历前序遍历中序遍历后序遍历 五、另一颗树的子树 六、二叉树的遍历 七、翻转二叉树 八、平衡二叉树 一、相同的树链接:100.相同的树-力扣(LeetCode)boolisSameTree(structTreeNode*p,structTreeNode*q){if(p==NULL&&q==NULL)returntrue;if(p==NULL||q==NULL)returnfalse;if(p->val!=q->val)returnfalse;returnisSameTree(p->left,q->left)&&isSameTree(p
每日OJ题——142.环形链表II(链表)1.题目:142.环形链表II2.方法讲解2.1.解法一:2.1.1.图文解析2.1.2.代码实现2.1.3.提交通过展示2.2解法二:2.2.1图文解析2.2.2代码实现2.2.3.提交通过展示1.题目:142.环形链表II2.方法讲解2.1.解法一:2.1.1.图文解析我们使用两个指针,fast与slow。它们起始都位于链表的头部。随后,slow指针每次向后移动一个位置,而fast指针向后移动两个位置。如果链表中存在环,则fast指针最终将再次与slow指针在环中相遇。如下图所示,设链表中环外部分的长度为a。slow指针进入环后,又走了b的距离与f
目录1051:反转数1052:礼物数目 1053:分解质因数 1054:求a+aa+aaa+…aa…a(n个a) 1055:零花钱 1056:n!的最高位 1057:小车位置 1058:乘积计算 1059:两个数的最大公约数 1060:两个数的最小公倍数 1061:九九乘法表(一) 1062:九九乘法表(二) 1063:字符统计(一) 1064:连续阶乘求和 1065:求式子的和 1066:水仙花数 1067:童年生活二三事 1068:韩信点兵 1069:小球蹦蹦跳 1070:十进制转二进制 1071:数列有序 1072:数组排序 1073:有序数组合并 1074:数组最小值 1075:最
目录 一、完全数计算(1)原题再现(2)问题分析(3)完整代码 二、扑克牌大小(1)原题再现(2)问题分析(3)完整代码 一、完全数计算(1)原题再现完全数计算__牛客网 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。输入n,请输出n以内(含n)完全数的个数。输入描述: 输入一个数字n输出描述:输出不超过n的完全数的个数 示例1输入1000输出3(2)问题分析