![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
链表
Rqff
这个作者很懒,什么都没留下…
展开
-
19. 删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点与这个题类似 面试题 02.02. 返回倒数第 k 个节点但是本题要删除节点需要考虑的更多,比如要删head头节点处理的问题。class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { //设置哑节点(不然删除head节点,找不到头了) ListNode *dummy = new ListNode(0); if(!head原创 2020-05-10 13:49:41 · 85 阅读 · 0 评论 -
面试题 02.02. 返回倒数第 k 个节点
面试题 02.02. 返回倒数第 k 个节点实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。示例:输入: 1->2->3->4->5 和 k = 2 输出: 4说明: 给定的 k 保证是有效的。利用双指针,fast指针先走k个距离,这样两个指针相隔k个位置,当fast指针指向null时,low指针正好指向倒数第k个节点。class Solution {public: int kthToLast(ListNode* head, int k) {原创 2020-05-10 11:33:15 · 133 阅读 · 0 评论 -
206. 反转链表
面试题24. 反转链表 & 206. 反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000方法一、头插class Solution {public: ListNode* reverseList(ListNode* head) {原创 2020-05-10 11:17:06 · 97 阅读 · 0 评论 -
234. 回文链表
234. 回文链表利用快慢指针找中点,头插断链法将后半部分链表逆置,然后依次比较时间复杂度O(n),空间复杂度为O(1)class Solution { ListNode* reverseList(ListNode* head) { ListNode* prev = NULL; ListNode* curr = head; //头插逆置 while (curr != NULL) { //保存下一个节点,防止原创 2020-05-10 10:42:25 · 129 阅读 · 0 评论 -
147. 对链表进行插入排序
147. 对链表进行插入排序class Solution { public ListNode insertionSortList(ListNode head) { ListNode dummy = new ListNode(0);//dummy没有直接连接到head上 ListNode pre = dummy; ListNode cur =...原创 2020-02-12 12:59:55 · 150 阅读 · 0 评论