数据结构
赵铁蛋
这个作者很懒,什么都没留下…
展开
-
C++--手动实现循环队列(数组+链表)
代码】C++--手动实现循环队列(数组+链表)原创 2022-08-03 22:01:31 · 434 阅读 · 1 评论 -
C++力扣2--两数相加(思路及代码)
1.题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。2. 思路及代码一开始我固定思维模式,觉得数一定要是高位到低位的排序模式,再从个位开始取。但是由于是单链表,就算逆置链表以后,找到链表最后一个节点,再找导数第二个相加的结点也不现实。后来我发现题目还省力了,低位刚好在链表头,所以可以直接从链表头开始遍历原创 2022-03-04 12:05:06 · 627 阅读 · 0 评论 -
数据结构--给定一个链表,判断链表中是否有环
这个问题可以用我们小学时期奥数题里面的经典:相遇问题来解决。思路:,找两个指针,起始都指向头部,循环向后走。每一次循环,一个指针一次性走两步,另一个一次性走一步。如果两个指针能够相遇,则证明这个链表成环。如果直到两指针中的任意一个指向空了,就代表该链表无环。判断函数如下:SListNode *JugdeCircle(SListNode *head){ SListNode *fast = ...原创 2019-08-24 23:48:03 · 386 阅读 · 0 评论 -
数据结构--逆序一个单链表
这个问题有两种解法。第一种方法我取名叫尾删头插法。第二种方法叫背过身法。我们先来看第一种:原创 2019-08-08 22:53:43 · 654 阅读 · 3 评论 -
数据结构--约瑟夫环问题
1.问题描述原创 2019-08-14 22:25:21 · 1431 阅读 · 0 评论 -
数据结构--找到两个单链表相交的起始节点
题目描述:如下面的两个链表:在节点 c1 开始相交。解题思路:首先需要考虑两个链表长度不一样的情况:这里就需要用到链表的右对齐思想,分别让两个指针指向两个链表,让长的链表的指针先走(长链表长度-短链表长度)步,这样就相当于跳过了较长链表的多余部分,则此时两指针遍历完链表所走长度应该是相同的,这就是右对齐思想。...原创 2019-08-16 13:48:21 · 845 阅读 · 0 评论 -
数据结构--给定一个链表,返回链表开始入环的第一个节点,无环返回NULL
这个题目我们需要考虑两种情况:1.入环点为头节结,这个就是上一篇博客的题目,在这里不再多说。2.入环点不是头结点,如下图。核心思路:多余部分到入环结点的长度=相遇点到入环结点的长度。1.先定义一个快指针一个慢指针,找到该链表的相遇点。2.快慢指针中的任意一个指针从相遇点出发,定义一个头指针从头结点出发,找到的公共节点就是头结点。代码实现#include<stdio.h>#...原创 2019-09-05 19:32:04 · 656 阅读 · 1 评论