ICode9

精准搜索请尝试: 精确搜索
  • AcWing 34. 链表中环的入口结点2022-06-20 10:01:02

    题目链接:https://www.acwing.com/problem/content/86/ /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *entryNod

  • 19.反转链表2022-06-18 22:35:15

    206. 反转链表 给你单链表的头节点 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

  • 18.移除链表元素2022-06-18 20:37:31

    203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。   示例 1: 输入: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], v

  • 链表相关算法题详解2022-06-18 17:04:22

    1、(LeetCode21)合并两个有序链表   链接:https://leetcode.cn/problems/merge-two-sorted-lists/   题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。    思路:这道题可以用递归来做,首先判断两个链表的首节点哪个比较小,

  • 17.环形链表2022-06-18 11:02:15

    141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅

  • offer24 反转链表2022-06-17 11:35:18

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解法:我们使用三个指针,分别指向当前遍历到的结点、它的前一个结点以及后一个结点。 在遍历的时候,做当前结点的尾结点和前一个结点的替换。 pytho

  • LeetCode 1721. Swapping Nodes in a Linked List2022-06-16 03:31:06

    原题链接在这里:https://leetcode.com/problems/swapping-nodes-in-a-linked-list/ 题目: You are given the head of a linked list, and an integer k. Return the head of the linked list after swapping the values of the kth node from the beginning and the kth 

  • 线性结构-链表、栈、队列应用场景2022-06-12 00:01:02

    一、单链表数据结构定义 python版 class ListNode: def __init__(self, val, next_node = None): self.val = val self.next = next_node   2.C++版 struct ListNode { int value; ListNode *next; ListNode(int item, next = nullptr) {

  • 2022-6-11 真题练习2022-06-11 14:32:35

    MT8 奇数位丢弃    校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。 描述 对于一个由 0..n 的所有数按升序组成的序列,我们要进行一些筛选,每次我们丢弃去当前所有数字中第奇数位个的数。重复这一过程直到最后剩下一个数。请求出最

  • LeetCode No61. 旋转链表2022-06-09 22:40:08

    题目 给你一个链表的头节点 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 <= 100 0 <= k <= 2 * 10^9

  • 牛客网高频算法题系列-BM14-链表的奇偶重排2022-06-07 10:01:57

    牛客网高频算法题系列-BM14-链表的奇偶重排 题目描述 给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。 注意是节点的编号而非节点的数值。 原题目见:BM14 链表的奇偶重排 解法一:链表遍历(使用额外空间) 首先,判断如果链表为空或者只有1或2个

  • 力扣-19-删除链表倒数第N个结点/《剑指Offer》-22-链表中倒数第K个节点2022-06-07 00:02:18

    可以看出,《剑指Offer》-22是力扣-19的子问题 找到链表中倒数第K个节点 《剑指Offer》-22,一次遍历单向链表得到倒数第K个结点的方法 从1开始倒数,那么倒数第K个节点即是正数第N-K+1个节点 这里还是使用同向双指针的办法 pointer1/pointer2都初始化为指向0,pointer1先开始走而pointer2

  • C++刷题知识点2022-06-06 23:34:58

    加速输入输出 当碰到ACM模式下的笔试题,使用C++的cin和cout流,通常会比C原生scanf和printf慢很多。原因是C++为了兼容scanf和printf,做了很多设计。但通常而言,使用cin和cout会比scanf和printf顺手很多。为了兼顾感觉和效率,可以在代码中添加以下两行,关闭对C的兼容。此时,C++原生输入输

  • 牛客网高频算法题系列-BM12-单链表的排序2022-06-05 13:02:12

    牛客网高频算法题系列-BM12-单链表的排序 题目描述 描述 原题目见:BM12 单链表的排序 解法一:数组排序 首先判断如果链表为空或者只有一个结点,则不需要排序,直接返回原链表。 否则,使用额外空间进行排序,处理过程如下: 首先遍历链表,将所有结点值暂存在一个List中; 然后,使用库函数将Li

  • LeetCode 0206 Reverse Linked List2022-06-03 15:01:51

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 方法一: 遍历,逐个摘下结点,头插到新链表 2、代码实现 package Q0299.Q0206ReverseLinkedList; import DataStructure.ListNode; public class Solution1 { /* 方法一: 遍历,逐个摘下结点,头插到新链表 */

  • 链表中的节点每k个一组翻转2022-06-03 11:00:59

    描述 将给出的链表中的节点每k个一组翻转,返回翻转后的链表 如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样 你不能更改节点中的值,只能更改节点本身。 数据范围:0≤n≤2000 ,1≤k≤2000 ,链表中每个元素都满足0≤val≤1000 要求空间复杂度O(1),时间复杂度O(n) 例如: 给定的链表

  • 牛客网高频算法题系列-BM10-两个链表的第一个公共结点2022-06-03 10:31:08

    牛客网高频算法题系列-BM10-两个链表的第一个公共结点 题目描述 输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 原题目见:BM10 两个链表的第一个公共结点 解法

  • 链表内指定区间反转2022-06-03 01:00:24

    描述 将一个节点数为size链表m位置到n位置之间的区间反转,要求时间复杂度O(n),空间复杂度O(1)。 例如: 给出的链表为1→2→3→4→5→NULL, m=2,n=4, 返回1→4→3→2→5→NULL. 数据范围: 链表长度0<size≤1000,0<m≤n≤size,链表中每个节点的值满足∣val∣≤1000 要求:时间复杂度O(n) ,空

  • 牛客网高频算法题系列-BM9-删除链表的倒数第n个节点2022-06-02 09:33:40

    牛客网高频算法题系列-BM9-删除链表的倒数第n个节点 题目描述 给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针 原题目见:BM9 删除链表的倒数第n个节点 解法一:双指针法 首先,考虑两种特殊情况: 如果原链表为空,直接返回null。 如果k不是正数,直接返回null。 否则,使用双

  • LeetCode 0203 Remove Linked List Elements2022-06-02 08:32:11

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 删除,找前驱咯~ 2、代码实现 package Q0299.Q0203RemoveLinkedListElements; import DataStructure.ListNode; public class Solution { /* 删除,找前驱咯~ */ public ListNode removeElements(ListNode

  • 两数相加(链表逆序存储版)2022-06-02 00:32:29

    需要注意的地方 选择的方法是以一支链表作为结果链,另一只加上去,这就要注意结果链比另一支短的情况,在相加的同时,我定义了一个 before 用来记录当前节点的前一个节点的指针,因为相加操作结束时,结果链节点指针是NULL,不便于将第二条链接上去。 两数相加 给你两个 非空 的链表,表示两个

  • 牛客网高频算法题系列-BM8-链表中倒数最后k个结点2022-06-01 10:02:16

    牛客网高频算法题系列-BM8-链表中倒数最后k个结点 题目描述 描述:输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。 原题目见:BM8 链表中倒数最后k个结点 解法一:双指针法 首先,考虑两种特殊情况: 如果

  • [链表] 力扣 203. 移除链表元素2022-05-31 21:01:59

    203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:head = [7,7,7,

  • 【力扣 095】2095. 删除链表的中间节点2022-05-31 20:33:47

    2095. 删除链表的中间节点 给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n = 1、2、3、4 和 5 的情况,中间节点的下

  • 反转链表2022-05-31 00:00:59

    关键在于遍历链表时将结点next指针指向前一个结点。 描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围:0≤n≤1000 要求:空间复杂度O(1),时间复杂度O(n)。 /* struct ListNode { int val; struct Lis

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有