ICode9

精准搜索请尝试: 精确搜索
  • LeetCode No25. K 个一组翻转链表2022-04-25 21:36:30

    题目 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例 1: 输入:head

  • leetcode-两数相加2022-04-25 08:32:16

    两数相加 官方题目地址:https://leetcode-cn.com/problems/add-two-numbers/ 点击查看代码 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可

  • 两数相加(LeetCode)2022-04-23 19:02:13

    两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0

  • 链表2022-04-23 14:32:33

    链表专题 学前必看:论如何4个月高效刷满 500 题并形成长期记忆 203. 移除链表元素 思路: 1)删除头部相同的val 2)来到第一个不是val的位置 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0

  • [AcWing 29] 删除链表中重复的节点2022-04-22 17:33:07

    点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* deleteDuplication(ListNode* head) { a

  • Leetcode 234. 回文链表2022-04-22 16:03:52

    234. 回文链表 - 力扣(LeetCode) (leetcode-cn.com)       思路 1 用栈: 1.先将head从头到尾都压入栈。 2.依次从栈中取出节点,和head及其后续节点进行比较。 3.如果从前向后第x节点和从后向前第x节点的值不相同,则这个链表不是回文链表。 func isPalindrome(head *ListNode) bool

  • [AcWing 35] 反转链表2022-04-21 23:31:25

    点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if (!he

  • 结构体的而指针属性不能直接做左值2022-04-20 16:33:23

    #include<bits/stdc++.h> using namespace std; struct ListNode { int val; ListNode *next =NULL; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {

  • LeetCode148排序链表-----归并排序2022-04-17 19:33:34

    题目表述 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例: 归并排序 归并排序本质,递归加合并两个有序链表。 利用快慢指针,找到链表中点,以中点为边界,将链表拆分成为两个子链表。 对两个子链表分别进行排序。 将两个排序后的子链表合并,得到完整的排序

  • 链表划分2022-04-17 09:01:54

    描述给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。 样例 1: 输入: list = null x = 0 输出: null 解释: 空链表本身满足要求 样例 2: 输入: list = 1->4->3->2->5->2->null x = 3 输出: 1->2->2->4->

  • 关于链表的中点2022-04-14 23:05:15

    单链表的中点 我们这就可以直接取前重点来比较嘛。 代码的话,要想验证回文,直接找到前中点的结点,然后反转后面的链表,再l1从开始比,l2从以反转的地方开始,直到比完l2就行了。 简单的一道题。 不过有些边界条件需要主要一下,以免出现空指针异常。 import java.util.*; /* * public cla

  • 牛客TOP101刷题记录2022-04-14 13:33:09

     一、排序总结 排序算法大致可以分为两类:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序;如果需要使用外存,则称为外排序。 内排序有以下几类: 插入排序:直接插入、二分法插入、希尔 选择排序:直接选择、堆排序 交换排序:冒泡、快速 归并排序 基数排序 排序方法

  • 合并两个有序链表_212022-04-13 10:04:18

    21. 合并两个有序链表:https://leetcode-cn.com/problems/merge-two-sorted-lists/将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) {

  • 剑指 Offer II 026. 重排链表2022-04-10 00:03:32

    给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为:L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: hea

  • 剑指 Offer II 025. 链表中的两数相加2022-04-09 23:33:00

    给定两个 非空链表 l1和 l2 来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。可以假设除了数字 0 之外,这两个数字都不会以零开头。      示例1:输入:l1 = [7,2,4,3], l2 = [5,6,4]输出:[7,8,0,7]示例2:输入:l1 =

  • 23. Merge k Sorted Lists2022-04-09 06:31:05

    My Solution 1: class Solution { public ListNode mergeKLists(ListNode[] lists) { PriorityQueue<ListNode> queue = new PriorityQueue<>((a,b)-> a.val-b.val); for(ListNode node:lists){ while(node!=null){

  • 反转链表_206_922022-04-08 19:00:21

    LeetCode_206.反转链表:https://leetcode-cn.com/problems/reverse-linked-list/ 题目描述:   给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路1:迭代实现 就是从头开始遍历,在遍历链表的时候,将当前节点的next指针改为指向前一个节点。 由于节点没有引用

  • 合并两个顺序的链表2022-04-08 12:02:39

    链接:剑指 Offer 25. 合并两个排序的链表 - 力扣(LeetCode) (leetcode-cn.com) 本题中要注意解决两个问题: 1.要合并的两个链表l1,l2可能为空,所以要对这两个链表为空的情况进行三种类型讨论:(1).都为空 (2).1空,2不空 (3).1不空,2空 2.一开始的头节点设置要先处理,找两链表的头节点值中

  • 剑指 Offer II 022. 链表中环的入口节点2022-04-08 00:31:16

    给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,po

  • 147. 对链表进行插入排序2022-04-07 10:00:07

    package leetcode; public class demo_147 { public ListNode insertionSortList(ListNode head) { //最多有一个节点的链表直接返回 if(head==null||head.next==null) { return head; } ListNode dummyNode=new ListNode();

  • LeetCode刷题1:反转链表2022-04-06 15:00:26

    给你单链表的头节点,请你反转链表,并返回反转后的链表。 /*输入1,2,3,4,5采用递归,栈顶首先为5,5.next=null,返回,此时为1->2->3->4->5;栈顶为4,5.next=4,此时为1->2->3->4<->5,4.next=null,返回,此时为1->2->3->4<-5;栈顶为3,4.next=3,此时为1->2->3<->4<-5,3.next=null,返回,此时

  • LeetCode 0061 Rotate List2022-04-06 09:00:28

    原题传送门 1. 题目描述 2. Solution 1、思路分析 找到倒数第k个结点的前驱pre,把pre之前的所有结点从链表上取下,插入到头部。 如: 1 -> 2 -> 3 -> 4 -> 5 -> null, k = 2 倒数第2个结点为4,其前驱为3,把 4 -> 5 -> null 从链表上取下,插入到头部 4 -> 5 -> 1 -> 2 -> 3 -> null 2

  • LeetCode 剑指 Offer 22. 链表中倒数第k个节点2022-04-06 00:33:58

    剑指 Offer 22. 链表中倒数第k个节点 题意 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 ​ 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6,则这个链表的倒数第 3 个节点是值为 4 的

  • 203. 移除链表元素2022-04-05 08:32:39

    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], val = 7

  • Remove Nth Node From End of List2022-04-04 19:31:48

    Source Given a linked list, remove the nth node from the end of list and return its head. Note The minimum number of nodes in list is n. Example Given linked list: 1->2->3->4->5->null, and n = 2. After removing the second node from the

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

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

ICode9版权所有