mtgo666
mtgo666
全部文章
分类
Linux学习笔记(10)
STL(7)
基础算法(9)
学习笔记(10)
题解(26)
归档
标签
去牛客网
登录
/
注册
mtgo666的博客
TA的专栏
19篇文章
0人订阅
数据结构和算法
19篇文章
2921人学习
全部文章
(共5篇)
反转链表专题
来自专栏
1、简介 链表的反转是面试中比较常考的一个点,在这里总结了反转链表的几种题型和要点。 2、题型 2.1 反转链表 2.1.1 问题描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 2.1.2 实现思路 我们可以回想...
C++
链表
2022-03-25
0
440
单链表的快速排序
来自专栏
1、简介 我相信对于一个数组使用快排是十分简单的,如果对一个无序的单链表排序,是否也能够使用快排呢? 我们先来回顾一下对无序数组的快排:先把数组中的一个元素设置为哨兵(一般是数组的第一个元素),然后利用两个指针指向数组的头和尾。分别移动这两个指针和哨兵进行比较,一趟下来可以把无序数组分为两部分,一部...
C++
链表
快速选择
2022-03-22
0
2921
题解 | #判断链表中是否有环#
思路 用快慢指针的方式,每次让快指针走两步,慢指针走一步。如果快慢指针能相遇则说明链表有环。(因为快慢指针之间的相对距离一直在减小,如果有环快指针早晚可以追上慢指针) 代码实现 /** * Definition for singly-linked list. * struct ListNode ...
C++
链表
2022-03-21
0
332
题解 | #两个链表的第一个公共结点#
解法一(推荐) 思想 虽然a链表和b链表的长度不一样,但是a+b链表的长度和b+a的链表长度是一样的。这道题的解法可以利用这个思想。利用指针l1遍历pHead1链表,利用指针l2遍历pHead2链表,当l1走到头的时候(也就是走完第一个链表的长度后)从第二个链表头处开始走;当l2走到头的时候(也就是...
C++
链表
2022-02-26
0
463
题解 | #合并两个排序的链表#(虚拟头结点)
实现思路 在这里我使用的是开辟一个新链表,然后通过比较给定两个链表的值来插入到这个新链表中,最后返回新的链表、 代码实现 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), nex...
C++
链表
2022-02-23
0
0