• 2024-07-01【剑指offer】JZ22-链表中倒数第k个节点-Python解法
    1.题目描述2.解题思路(Python版)方法一:遍历两次思路:1.首先计算链表的长度L;2.第二次开始从头依次遍历,找到链表的第(L-k+1)个节点,即为所找的节点。参考代码:#classListNode:#def__init__(self,x):#self.val=x#self.next=None##代码中的
  • 2024-06-30力扣-61. 旋转链表
    1.题目介绍题目地址(61.旋转链表-力扣(LeetCode))https://leetcode.cn/problems/rotate-list/题目描述给你一个链表的头节点head,旋转链表,将链表每个节点向右移动 k 个位置。 示例1:输入:head=[1,2,3,4,5],k=2输出:[4,5,1,2,3]示例2:输入:head=[0,1,2],k=
  • 2024-06-30leetCode.92. 反转链表 II
    leetCode.92.反转链表II题目思路代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNod
  • 2024-06-22LeetCode:经典题之206、92题解及延伸
    系列目录88.合并两个有序数组52.螺旋数组567.字符串的排列643.子数组最大平均数150.逆波兰表达式61.旋转链表160.相交链表83.删除排序链表中的重复元素389.找不同目录系列目录206.反转链表92.反转链表II类和结构体访问修饰符206.反转链表
  • 2024-06-22随机链表的复制 && 排序链表
    随机链表的复制题目.-力扣(LeetCode)思路:思路:       ①一个结点一个节点去拷贝,当拷贝了第一个节点的时候,把原节点与拷贝节点连接起来,直接到所有的节点拷贝完毕,这样做的目的是为下一步处理random指针做准备      ②处理random       ③处理
  • 2024-06-22LeetCode刷题day3——链表part1
    203.移除链表元素这个题是二刷了一开始这个思路就是利用虚拟头结点,但是中间很多小细节都考虑不到,例如初始化一个新的链表,循环条件的写法等classSolution{public:structListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL){};//定义构
  • 2024-06-22LeetCode刷题day4——链表part2
    24.两两交换链表中的节点用pre代表第1个节点,cur代表它后面的相邻节点,tmp存储cur->next。但是问题找不到怎么返回新的节点。想着就循环一次,在第一次交换的时候就确认新的头结点。但还存在很多问题,具体如下:classSolution{public:ListNode*swapPairs(ListNode*he
  • 2024-06-21数据结构——队列(Queue)详解
    1.队列(Queue)1.1概念队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstInFirstOut)的性质入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头(Head/Front)2队列的使用在Java中,Queue是个接
  • 2024-06-2183. Remove Duplicates from Sorted L
    Giventheheadofasortedlinkedlist,deleteallduplicatessuchthateachelementappearsonlyonce.Returnthelinkedlistsortedaswell.Example1:Input:head=[1,1,2]Output:[1,2]Example2:Input:head=[1,1,2,3,3]Output:[1,2,3]
  • 2024-06-20递归算法:代码迷宫中的无限探索
    ✨✨✨学习的道路很枯燥,希望我们能并肩走下来!目录前言一深入理解递归二迭代VS递归三递归算法题目解析3.1汉诺塔问题 3.2合并两个有序链表3.3反转链表 3.4 两两交换链表中的节点 3.5Pow(x,n)(快速幂) ​四总结总结前言作为递归、搜索与回溯算法
  • 2024-06-20203. Remove Linked List Elements
    Giventheheadofalinkedlistandanintegerval,removeallthenodesofthelinkedlistthathasNode.val==val,andreturnthenewhead.Example1:Input:head=[1,2,6,3,4,5,6],val=6Output:[1,2,3,4,5]Example2:Input:head=[],val=
  • 2024-06-17LeetCode 算法: 环形链表 c++
    原题链接
  • 2024-06-17DAY4-力扣刷题
    1.四数之和18.四数之和-力扣(LeetCode)给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a],nums[b],nums[c],nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d <na
  • 2024-06-14代码随想录——链表1——基本介绍与3种语言实现
  • 2024-06-1321. 合并两个有序链表
    题目链接一、题目描述1.题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。2.示例示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]
  • 2024-06-12力扣面试题 02.07. 链表相交
    一 题目:二思路:本题介绍两种思路解题,个人推荐思路一快速好理解 思路一: 1.先把其中一个链表的值变成负数 2.遍历另一个链表第一个出现负数的值就是交点 3.还原被改的链表 思路二:1.先用第一个链表的头节点head1搜索指针q遍历第一个链表直到为空,再把q放到head2
  • 2024-06-09Q22 LeetCode142 环形链表
    1.使用快慢指针2.快指针向后移动两个位置,慢指针向后移动一个位置3.若快慢指针能相等,则有环4.将一个指针指向head,一个指针指向fast,挨个向后遍历,相等即进环点 1publicclassSolution{2publicListNodedetectCycle(ListNodehead){3ListNodequickInd
  • 2024-06-09Q21 LeetCode02.07 链表相交
    1.求出两链表长度2.分情况进行长链表头结点后移3.移至相同长度,两头结点一起后移,找到公共节点 1publicclassSolution{2publicListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){34ListNodecurA=headA;5ListNod
  • 2024-06-09Q20 LeetCode19 删除链表倒数第N个节点
    1.创建虚拟头结点ListNodepre=newListNode(0,head);2.创建快慢节点3.快节点fastIndex先往后移N个位置4.快慢slowIndex节点一直往后移,直至快节点到链表末尾5.删除慢节点后面的节点 1classSolution{2publicListNoderemoveNthFromEnd(ListNodehead,intn){
  • 2024-06-09Q19 LeetCode24 两两交换链表节点
    1.注意节点交换顺序,以防节点丢失2.ListNodedummy=newListNode(0,head);定义空指针,并指向head节点 好语句3.还是虚拟头结点好用 1classSolution{2publicListNodeswapPairs(ListNodehead){3ListNodedummy=newListNode(0,head);4
  • 2024-06-08Q17 LeetCode707 设计链表
     无1classMyLinkedList{2intsize;3ListNodehead;45publicMyLinkedList(){6size=0;7head=newListNode(0);8}910publicintget(intindex){11if(index<0||index>=size)
  • 2024-06-08代码随想录第4天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
    题目:24.两两交换链表中的节点思路:设置虚拟头结点,双指针+临时指针,(感觉也能递归,未尝试)时间复杂度:O(n)空间复杂度:O(1)坑:1.又忘了else{}和return2.试图访问空指针,多个条件的顺序问题及"&&""||"问题,cur->next要写在cur->next->next前面/***Definitionforsingly-linked
  • 2024-06-08代码随想录算法训练营第四天 Leetcode 24 两两交换链表节点 Leetcode19 删除链表倒数的第N个节点 Leetcode 面试题0207 链表相交 Leetcode142 环形链表2
    链表问题首先要记住设置虚拟头节点Leetcode24两两交换链表节点题目链接思路:就是简单模拟两两交换 要注意链表节点的处理一定要获取到合适的位置比如:这一题中两个交换节点的前一个节点注意链表保存临时节点/***Definitionforsingly-linkedlist.*publicclas
  • 2024-06-07代码随想录第3天 | 链表 203.移除链表元素,707.设计链表,206.反转链表
    题目:203.移除链表元素思路:主要是头节点的删除问题,一种是直接在原链表上后移头节点设置虚拟头结点,指向原链表的头结点,在设置一个cur指针指向当前节点,虚拟头节点初始化后就不移动了,使用cur进行移动不要忘记释放删除节点的内存,自行设置的虚拟头节点也要释放时间复杂度:O(n)空
  • 2024-06-07141. 环形链表
    /***Definitionforsingly-linkedlist.*typeListNodestruct{*Valint*Next*ListNode*}*/funchasCycle(head*ListNode)bool{listMap:=map[*ListNode]struct{}{}forhead!=nil{if_,ok:=listMap[head];ok{