摘要: 题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 思路: 1、判断是否有环 定义两个指针,一快一慢,从头指针开始遍历,快指针不为空或者快指针的下一个结点不为空,则有环 2、返回环的位置 找到快、慢指针相遇的点,根据公式x=(n-1)(z+y)+ 阅读全文
posted @ 2023-04-27 15:39 该说不唠 阅读(41) 评论(0) 推荐(0)
摘要: 题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 需要注意的点: 1、定义的两个指针在遍历完链表的长度后,要重新指向头结点 2、让长、短链表的尾端对齐 3、相交意味着指针相同 class Solution { p 阅读全文
posted @ 2023-04-26 21:20 该说不唠 阅读(56) 评论(0) 推荐(0)
摘要: 题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5]本题需要使用双指针,需要注意的点:1、双指针都指向头结点2、快指针提前移动n+1个点3、结束条件:快指针指向空指针4、慢指针指向要删除结点的前一 阅读全文
posted @ 2023-04-26 20:23 该说不唠 阅读(28) 评论(0) 推荐(0)
摘要: 题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。 你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换) 步骤: class Solution { public: ListNode* swapPairs(ListNode* head) { ListNode* dum 阅读全文
posted @ 2023-04-26 10:49 该说不唠 阅读(21) 评论(0) 推荐(0)
摘要: 函数对象(仿函数): 重载函数调用操作符 本质是一个类 仿函数可以作为参数传递 谓词 返回值为bool类型的仿函数称为谓词 一元谓词和二元谓词,一元还是二元看的是参数的数量 常用算法 for_each(v.begin(),v.end(),func)最后一位传入函数或仿函数 transform(v.b 阅读全文
posted @ 2023-04-16 21:00 该说不唠 阅读(41) 评论(0) 推荐(0)
摘要: list链表:STL中的链表是双向循环链表 迭代器不支持随机访问 包括数据域和指针域 构造:默认、区间、拷贝、n个elem 赋值:重载=、区间,n个elem 交换:swap(); 大小:resize(); 插入和删除:remove(); insert(); erase(); 数据存取:无法使用[]和 阅读全文
posted @ 2023-04-15 18:33 该说不唠 阅读(31) 评论(0) 推荐(0)