链表
一叶知秋的BLOG
没有过不去的黑夜,也没有等不到的明天。乾坤未定,你我皆是黑马。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python 反转链表
反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 提供两种解题思路 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # se原创 2021-12-19 08:00:00 · 601 阅读 · 0 评论 -
python 从尾到头打印链表
从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值 (用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 提供三种题解 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: """ 解原创 2021-12-17 08:00:00 · 486 阅读 · 0 评论 -
顺序表和链表的优缺点详解
一、什么是线性表 线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即把所有数据用一根线串起来,再存储到物理空间中。 将具有一对一关系的数据线性地存储到物理空间中,这种存储结构就称为线性存储结构(简称线性表) 二、顺序存储结构和链式存储结构 图 3 中我们可以看出,线性表存储数据可细分为以下 2 种: 如图 3a) 所示,将数据依次存储在连续的整块物理空间中,这种存储结构称为顺序存储结构(简称顺序表); 如图 3b) 所示,数据分散的存储在物理空间中,通过一根线保存着它们之间的逻辑关系原创 2021-11-30 20:27:21 · 2194 阅读 · 0 评论 -
python 环形链表
|环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否则,返回 false 。 输入:head = [3,2,0,-4], pos = 1 输出:true原创 2021-11-29 10:00:00 · 803 阅读 · 0 评论 -
python 相交链表
|相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统 的输入如下(你设计的程序 不适用 此输入): intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0 listA - 第一个链表 listB - 第二个链表 skipA -原创 2021-11-28 12:08:15 · 551 阅读 · 0 评论 -
python 删除链表中倒数第N个节点
| 删除链表中倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: 输入:head = [1], n = 1 输出:[] 示例 3: 输入:head = [1,2], n = 1 输出:[1] | 题解 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, ne原创 2021-11-24 00:00:14 · 1604 阅读 · 0 评论 -
python 链表中倒数第k个节点
| 返回链表中倒数第K个节点 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. |题解 # Definition for singly-linked list. # class List原创 2021-11-22 00:39:56 · 1379 阅读 · 0 评论 -
python 奇偶链表
|奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5->2->4->NULL 示例 2: 输入: 2->1->3->5->6-&原创 2021-11-17 13:12:53 · 408 阅读 · 0 评论 -
python 回文链表
| 回文链表 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 输入:head = [1,2,2,1] 输出:true 输入:head = [1,2] 输出:false | 题解 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val #原创 2021-11-16 20:53:42 · 1504 阅读 · 0 评论 -
python 链表的反转
| 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] | 题解 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val =原创 2021-11-15 20:04:18 · 3761 阅读 · 0 评论 -
python 合并两个排序的链表
合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 | 题解 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = No原创 2021-11-14 23:43:37 · 963 阅读 · 0 评论 -
python 删除链表中的重复元素
| 删除链表中的重复元素 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。 返回同样按升序排列的结果链表。 输入:head = [1,1,2] 输出:[1,2] 输入:head = [1,1,2,3,3] 输出:[1,2,3] | 题解 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): #原创 2021-11-14 23:41:23 · 1552 阅读 · 0 评论 -
python 链表的中间节点
| 求链表的中间节点 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.nex原创 2021-11-14 23:36:48 · 603 阅读 · 0 评论 -
python移除链表元素
| 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:head = [7,7,7,7], val = 7 输出:[] | 题解 # Definition for singly-linked list. # class原创 2021-11-14 23:16:22 · 949 阅读 · 0 评论 -
python 链表两数相加
| 两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 输入: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], l2原创 2021-11-14 18:25:02 · 644 阅读 · 0 评论 -
python 链表的基础概念和基础用法
一、什么是链表 链表是由多个不同的节点组成,每个节点通过指针区域关联到一起 链表的头指针,指向了头节点,通过头指针可以找到其他节点信息 二、什么是节点 链表由节点组成,每个节点又包含两个部分,一个是元素区域,一个是指针区域。 元素区域存储的是,当前节点的数值,指针区域指向下一个节点的对象。在C语言中,指针应该是指向下一个元素的的内存地址,因python中不研究指针,这里用下一个节点的对象代替。这样我们就能通过指针区域,找到下一个节点的信息,从而得到下一个节点的值了。 三、为什么引入链表的概念原创 2021-11-13 19:33:22 · 1584 阅读 · 0 评论
分享