02.07专题

代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点 、 面试题 02.07. 链表相交、142.环形链表II

24. 两两交换链表中的节点 题目链接: 24. 两两交换链表中的节点 文档讲解:代码随想录 状态:没做出来,没有正确更新头节点,因为head和cur共享引用,会随着cur的移动,丢失之前存放的节点 错误代码: public ListNode swapPairs(ListNode head) {ListNode cur = head;ListNode next;ListNo

代码随想录算法训练营Day4|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、 142.环形链表II、面试题 02.07. 链表相交

24. 两两交换链表中的节点 这道题的关键在于: 1、在置换两个节点的时候,当前节点需要在这俩节点之前一个节点。并且要提前保存cur.next以及cur.next.next。 2、每次置换完一组节点,cur = cur.next.next 3、判断结束的标志:奇数个节点:cur.next.next != null 偶数个节点:cur.next != null 为了保证cur.next.next不

算法随想录第四天打卡|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交 ,142.环形链表II

24. 两两交换链表中的节点 用虚拟头结点,这样会方便很多。  本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。 题目链接/文章讲解/视频讲解: 代码随想录 Python # Definition for singly-linked list.# class ListNode:# def __init__(se

LeetCode 面试题 02.07.链表相交(判断两个结点是否相同)

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], lis

leetcode.面试题 02.07. 链表相交

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 思路 假a在链表A上移动,b在链表B上移动,a移动完在B上开始,b移动完再A上开始。最终a移动的距离a + c + x,b移动的距离 b + c + y。可以看到a + c + x = b + c + y,即a

算法刷题Day4 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

目录 0 引言1 两两交换链表中的节点1.1 我的解题1.2 注意事项 2 删除链表的倒数第N个节点2.1 我的代码2.2 报错原因分析 3 链表相交3.1 我的解题 4 环形链表II4.1 我的解题 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:算法刷题Day4 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交

代码随想录训练营第四天|面试题02.07链表相交

题目: 面试题 02.07. 链表相交 已解答 简单 相关标签 相关企业 提示 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 示例 1: 输入:intersectV

从零开始的LeetCode刷题日记:面试题 02.07. 链表相交

一.相关链接 题目链接:面试题 02.07. 链表相交(同160.链表相交) 二.心得体会        这道题是一道链表题,不涉及对结点进行操作所以不用虚拟头结点。这道题的思想是从后往前进行对齐,因此我们需要先求出两条链表的长度,然后让长的那条链表与短的进行对齐,然后统一往后一个个节点比对,从而找到相交节点。 三.代码 /*** Definition for singly-linked

代码随想录三刷day04 | 链表之 24 两两交换链表中的节点 19删除链表的倒数第N个节点 面试题 02.07链表相交 142环形链表II

三刷day04 24. 两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 24. 两两交换链表中的节点 题目链接 解题思路: 先将一些可能会改变的节点保存一下,然后再按照三个步骤就行修改 注意 要使用改变以后节点的指针(这个地方一刷的时候没注意到,稀里糊涂的过去了) 代码如下: class Solution {publ

02.07 Day 19 - 重温 Day 10

大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 19 天,也是我第 73 次进行这种操作。 今天我温习了该专栏里一篇叫《count(*)这么慢,我该怎么办?》的文章。 关键词总结:count(*) 的实现方式(MyISAM、InnoDB、不支持事务、不准确、性能问题)、用缓存系统保存计数、在数据库保存计数、不同的 count 用法(count(主键

02.07 Day 54 - 高效沟通:好老板要善于提问

大家好,我是 Snow Hide,作为《左耳听风》这个专栏的学员之一,这是我打卡的第 54 天,也是我第 72 次进行这种操作。 今天我温习了该专栏里一篇叫《高效沟通:好老板要善于提问》的文章。 关键词总结:引导(自我思考、不要给答案、最 Low 的管理模式)、倾听(全面理解、学会倾听、周期性交谈)、共情(同理心、谈感情、理解对方)、高维(细节问题、高维度看问题、肯定大家过去的努力及成绩、和大

C++刷题笔记(7)——leetcode24、19、142、面试题02.07

题目1:24.两两交换链表中的节点 解法一:迭代法 解题思路: 用cur表示当前到达的节点,每次需要交换cur后面的两个节点 当cur后面没有节点或者只有一个节点,则没有更多的节点需要交换,此时结束交换。否则,获得cur后面的两个节点temp和temp1,通过更新节点的指针关系实现两两交换节点。 class Solution {public:ListNode* swapPairs(

面试题 02.07. 链表相交(力扣LeetCode)

文章目录 面试题 02.07. 链表相交题目描述解题思路c++代码优化后c++代码 面试题 02.07. 链表相交 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24,动指针 class Solution {public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummy=new ListNode(-1);dummy->next=head;for(auto p=dummy;p->next&&p->next->next;){auto a=p->next;auto b=a->next;p->ne

代码随想录算法训练营第4天 | 24. 两两交换链表中的节点 , 19.删除链表的倒数第N个节点 , 面试题 02.07. 链表相交 , 142.环形链表II

链表知识基础 文章链接:https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html# 24. 两两交换链表中的节点 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 使用虚拟头结点,这样会方便很多,要不然每次针对头结点(

【代码随想录04】24. 两两交换链表中的节点 19. 删除链表的倒数第 N 个结点 面试题 02.07. 链表相交 142. 环形链表 II

24. 两两交换链表中的节点 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 做题思路 可以设置虚拟头结点cur和画图来方便理清逻辑。 参考代码 class Solution {public ListNode swapPairs(ListNode head) {ListNode v=n

代码随想录算法训练营第四天 |24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题02.07.链表相交,142、环形链表II

链表基础 1、链表定义: (1)链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。 (2)链表的入口节点称为链表的头结点也就是head。 2、链表类型: 单链表:上面说的就是单链表。 双链表: 单链表中的指针域只能指向节点的下一个节点。 双链表:每一个节点有两个指针

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07. 链表相交、142.环形链表II

24. 两两交换链表中的节点 题目链接:24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 文章讲解/视频讲解:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A

【力扣 面试题02.07链表相交】一种思路极其清晰的解法

力扣一单简单题,看完大佬的题解真是佩服得五体投地! 虽是一道简单题,当我吭哧吭哧写了几十行后,看到大佬仅仅几行直接秒掉,只能说算法的本质还是数学,数学逻辑思维真是太重要了,有时候真得慢慢去培养这种思维,才能在面试中脱颖而出! 这里贴上题目链接:链表相交 代码的整体逻辑十分清晰,核心思想就是让A B的两个指针走相同的步数,如果走了相同步数(不相交的话,最终A B都是nullptr;如果相交

02.07_学习Java的day24【设计模式】

day24【设计模式】 主要内容 设计模式的概念面向对象开发原则单例设计模式模板设计模式工厂设计模式代理设计模式迭代器设计模式装饰者设计模式观察者设计模式 教学目标 了解设计模式 了解面向对象的开发原则 掌握单例设计模式的多种编写方式 理解工厂设计模式 理解代理设计模式 理解迭代器设计模式 理解装饰者设计模式 理解观察者设计模式 第十七章 设计模式 17.1 设计模式概述 17.1

算法第四天|LeetCode24、LeetCode19、LeetCode面试题 02.07、LeetCode142

24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。  输入:head = [1,2,3,4] 输出:[2,1,4,3] 输入:head = [] 输出:[] 输入:head = [1] 输出:[1] # Definition for singly-link

力扣面试题02.07.链表相交

原题链接:力扣面试题02.07.链表相交 思路 两个长度不确定是否一致的链表,如果相交,那么一定是有一个链表结点相同,注意不是值相同而是结点相同,也就代表了是需要指针是相同的才行 根据图可以得出,相交后的结点都是一致的,那么需要做的就是把两个链表长度统一,再从头结点逐步遍历,直至指针结点相同,返回相同的指针结点即可 如果没有相同的指针结点 则代表没有相交 返回NULL 全代码: /***

代码随想录算法训练营第4天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II

JAVA语言编写 24. 两两交换链表中的节点 谷歌、亚马逊、字节、奥多比、百度 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head = [1,2,3,4]输出:[2,1,4,3] 示例 2: 输入:head = []输出:[] 示例 3: 输入:head =

Leetcode 02.07 链表相交(链表)

Leetcode 02.07 链表相交(链表) 解法1 尾部对齐解法2:太厉害了,数学归纳推导的方法 很巧妙,这就是将链表的尾端对齐后再一起遍历,这样能满足题目的要求。因为相交之后两个链表到结束的所有节点都一样了,数目也一样。 解法1 尾部对齐 时间复杂度O(M+N) 空间复杂度O(1) /*** Definition for singly-linked li