自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 黄金挑战 | K个一组反转

1.因为要分组反转,所以要一组一组处理,将其分为已反转,正在反转,等待反转三个部分,同时,为了方便头节点的处理,新建一个虚拟节点。2.遍历,根据是否为K个找到4个关键位置,并用变量pre,start,end,next标记。1.先遍历链表得出链表长度len,确定分组n = len/k。4.将截下来的部分再缝到原始链表上,调整指针指向。5.最后调整几个变量的位置,为下一组反转做准备。3.将要反转部分截断后进行反转。

2023-11-21 12:18:46 46

原创 链表反转拓展

leetcode445:给你两个非空链表来代表两个非负整数,数字最高位位于链表开始位置,它们的每个节点只存储一位数字,将这两数相加返回一个新的链表。思路:先将两个链表的元素分别压栈,然后一起出栈,将两个结果分别计算,之后对计算结果取模,余数保存到新的链表中,进位保存到下一轮,完成后再进行一次反转就行。这个题目的难点在于存放是从最高位向最低位开始的,但是因为低位会产生进位的问题,计算的时候必须从最低位开始,所以想办法将链表的节点反转过来。3.在最后,如果进位 carry 不为 0,那么最后需要计算进位。

2023-11-15 18:06:46 40

原创 黄金挑战之双向链表

static class ListNode{//节点是链表的属性,所以用static来修饰//节点成员//头插法//尾插法//在任意节点位置插入,假设第一个节点下标为0//查找是否包含关键字key是否在单链表中//删除第一次出现关键字为key的节点//删除所有值为key的节点//得到链表的长度//打印链表内容//删除链表//创建一个节点if(head == null){//无元素情况return;return;链表长度size()

2023-11-03 15:50:53 44

原创 链表反转基础

Leetcode206:给一个单链表的头结点head,请你反转链表,并返回反转后的链表。两种方法,带头节点和不带头节点。

2023-10-31 17:30:16 49 1

原创 输入两个链表,找出它们的第一个公共节点

公共节点一定存在第一轮遍历,那么La的长度为L1,Lb的长度为L2,长度差的绝对值为|L1-L2|;第二轮遍历让长的先走|L1-L2|步,然后再同时向前走,直到找到相同节点即为公共节点。先将一个链表元素全部存到Map里,然后一边遍历第二个链表,一边检测Hash中是否存在当前结点,如果有交点,那么一定能检测出来。需要用到两个空间为o(n)的栈,分别将两个链表的节点入两个栈,然后出栈,如果两个节点相等就继续出栈,直到找到最晚出栈的那组。stack.pop() :从栈中移除并返回栈顶的元素。

2023-10-17 22:27:59 204

原创 算法通关村-第一关青铜挑战-链表

链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干节点(node)所组成。单向链表的每一个节点又包含两部分,一部分是存放数据的变量data,另一部分是指向下一个节点的指针next。4. }链表的第1个节点被称为头节点,最后1个节点被称为尾节点,尾节点的next指针指向空(NULL)。双向链表的每一个节点除了拥有data和next指针,还拥有指向前置节点的prev指针。

2023-10-16 23:47:35 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除