LeetCode刷题笔记
GJ_WL
这个作者很懒,什么都没留下…
展开
-
C++整型上下限INT_MAX INT_MIN及其运算
C++中常量INT_MAX和INT_MIN分别表示最大、最小整数,定义在头文件limits.h中。原创 2022-01-01 11:34:38 · 480 阅读 · 0 评论 -
二叉树总结
二叉树的度原创 2021-12-30 14:40:31 · 450 阅读 · 0 评论 -
由LeetCode C++ sort函数第三个参数cmp必须声明为static 引发的思考(转载)
在用sort函数对pair类型数据进行排序时,需要自定义排序函数cmp,在自定义函数的时候需要加static才不会报错力扣题目:二叉搜索树中的众数参考链接:由LeetCode C++ sort函数第三个参数cmp必须声明为static 引发的思考static静态成员函数不用加对象名,就能直接访问函数(这也是静态成员函数的一大优点)所以加了static就不会报错...原创 2021-12-27 23:13:59 · 1011 阅读 · 0 评论 -
超时报错情况汇总(持续更新)
1. 链表赋值时,左边一定是被赋值的变量,否则程序运行不报错,但是会超出时间限制!注意:一定要看清楚,把谁赋值给谁,把A赋值给B:B=A左边一定是B,右边一定是A// leetcode19题: 删除链表的倒数第 N 个结点class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummyhead = new ListNode(0); dummy原创 2021-12-01 16:30:27 · 317 阅读 · 0 评论 -
分隔链表(用两个临时头结点)
巧用两个临时头结点,其实就是利用头结点保存起始位置,通过循环分别形成大于等于x和小于x的两个链表后,要将他们连接起来,用小于x的链表末端指针指向大于等于x链表的头结点的下一个,再将该链表末端置空就可以实现了。class Solution {public: ListNode* partition(ListNode* head, int x) { //巧用临时头结点 ListNode less_head(0); ListNode more_head(0原创 2021-11-13 17:17:10 · 280 阅读 · 0 评论 -
删除链表的倒数第 N 个结点
双指针,前后指针class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummy = new ListNode(0, head);//要知道删除结点的前驱,因此定义一个哑结点,最后删除哑结点 ListNode* first = head; ListNode* second = dummy; for (int i =原创 2021-11-09 15:25:25 · 81 阅读 · 0 评论 -
快慢指针题型总结
https://leetcode-cn.com/problems/middle-of-the-linked-list/有返回值时需要returnvoid 即无返回值时不需要returnclass Solution {public: ListNode* middleNode(ListNode* head) { ListNode* fast = head; ListNode* slow = head; //当为奇数时,slow到达中间结点时,fas原创 2021-11-08 21:26:44 · 83 阅读 · 0 评论 -
026. 重排链表
重排链表:三步走1.找到中点2.逆置后半段3.链接两个链表注意:要将链表1打断,通过mid->next = null;https://leetcode-cn.com/problems/LGjMqU/官方示例:fast->next != nullptr && fast->next->next != nullptr//只要有一个为空就退出循环class Solution {public: void reorderList(ListNode* h原创 2021-11-08 21:23:35 · 91 阅读 · 0 评论 -
链表中点查找
快慢指针class Solution {public: ListNode* middleNode(ListNode* head) { ListNode* fast = head; ListNode* slow = head; //当为奇数时,slow到达中间结点时,fast到达最后一个结点 fast->next = NULL //当为偶数时,slow到达中间结点时,fast到达空 fast = NULL原创 2021-11-08 17:22:34 · 137 阅读 · 0 评论 -
链表中环的入口节点
https://leetcode-cn.com/problems/c32eOV/class Solution {public: ListNode *detectCycle(ListNode *head) { ListNode* fast = head; ListNode* slow = head; ListNode* meet = NULL; while(fast){ fast = fast->next原创 2021-11-07 11:17:39 · 99 阅读 · 0 评论 -
链表相交题
https://leetcode-cn.com/problems/intersection-of-two-linked-lists-lcci/ // 将两个链表头指针对齐,开始向后查找,直到两个链表指针指向相同,则找到相交结点 int get_len(ListNode *head){ int len = 0; while(head){ len++; head = head->next; } return len; }原创 2021-11-07 10:41:00 · 79 阅读 · 0 评论 -
92. 反转链表 II
class Solution {public: ListNode* reverseBetween(ListNode* head, int left, int right) { int len = right-left+1;//需要逆置的部分长度 ListNode* result = head; //逆置后链表的头结点,如果left>1,就是head ListNode* pre_head = NULL; //定义逆置结点的前一个结点,用来连接原创 2021-11-07 09:40:59 · 74 阅读 · 0 评论 -
LeetCode刷题——剑指 Offer 24. 反转链表
解法一:定义一个指向NULL的新链表new_head,让head逐步指向new_head,实现反转(代入具体的数据理解)class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* new_head = NULL; while(head){ ListNode *p=head->next; //保存head的下一个 head->原创 2021-11-06 15:31:57 · 151 阅读 · 0 评论
分享