![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 54
ZSTU_呆大鹅
那咋办嘛(・o・)
展开
-
排序(链表)
首先说一下程序运行时间的计算:一般法则:法则1—for循环:一次 for 循环的运行时间至多是该 for 循环内语句(包括测试)的运行时间乘以迭代次数。法则2–嵌套的for循环:自内向外分析,在一组嵌套循环内部的一条语句总的运行时间为该语句的运行时间乘以该组所有的 for 循环的大小的乘积。法则3–顺序语句:将各个语句的运行时间求和即可(其中的最大值就是所得的运行时间)。法则4–if/else语句:一个 if/else 语句的运行时间从不超过判断的时间加上两种情况中运行时间较长者的总的运行原创 2022-12-07 18:13:52 · 368 阅读 · 0 评论 -
数据结构--链表题七--旋转链表(leetcode--61)
题目描述:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]提示:链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 109忙死了…带着烦躁的心情把这题暴力解决掉:题解:解题思路:1.先原创 2022-01-28 22:57:15 · 532 阅读 · 2 评论 -
数据结构--链表题六--删除链表的节点(leetcode--剑指 Offer 18)
今天偷个懒题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表原创 2022-01-26 15:34:53 · 552 阅读 · 0 评论 -
数据结构--链表题五--反转链表(leetcode-剑指 Offer II 024)
题目描述:给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000题解:解题思路1:遍历两遍链表,第一次把所有值取出来,第二次给链表重新赋值(这种解法比较繁琐)/**原创 2022-01-25 17:16:45 · 697 阅读 · 0 评论 -
数据结构--链表题四-两两交换链表中的节点(leetcode-24)
题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100题解:这题对于空链表和只有一个节点的链表直接返回链表即可,对于节点数大于原创 2022-01-24 13:40:24 · 223 阅读 · 0 评论 -
数据结构--链表题三--合并两个有序链表(leetcode-21)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列题解:由于没有看清题(原创 2022-01-23 20:34:00 · 251 阅读 · 0 评论 -
数据结构--链表题二--两数相加(leetcode-2)
题目描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9]原创 2022-01-22 17:03:29 · 145 阅读 · 0 评论 -
数据结构--链表题一--删除链表的倒数第N个节点(leetcode-19)
题目描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz题解:解题思路设立三个节点原创 2022-01-20 18:16:41 · 492 阅读 · 0 评论 -
数据结构--链表
首先介绍一下抽象数据类型(Abstract Data Type, ADT), 它是一些操作的集合,但未定义如何实现这些操作,例如表,集合,图以及它们的操作都可以看作为 ADT 。对于一个集合 ADT,我们可以编写一些自己想要用到的操作,并且这些操作只在程序中编写一次,在程序中的其它部分需要用到某些操作(比如求大小,求并等)的时候,通过直接调用其中的函数来达到目的。(对表的操作都可以通过使用数组(线性的)来实现,但是简单数组一般不用来实现表这种结构(某些操作的运行缓慢,若表的大小未知的前提下,通常需要开一原创 2022-01-19 22:52:11 · 412 阅读 · 0 评论