满难度系数
* * * * *
,此题难度系数* * *
。
满考频热度* * * * *
,此题热度* * * * *
。
重排方式是1->4->2->3
。以免越界
考的知识点有:快慢指针找中间结点
,反转链表
,链表链接
等知识点。/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
void reorderList(ListNode *head) {
//注释1
if(head == nullptr || head -> next == nullptr || head->next->next == nullptr)
{
return;
}
//注释2
ListNode* fast = head;
ListNode* slow = head;
while(fast && fast -> next)
{
fast = fast -> next -> next;
slow = slow -> next;
}
//注释3
ListNode *HNode = slow -> next;
slow -> next = nullptr;
ListNode* Node = nullptr;
ListNode* cur = HNode;
ListNode* Next = cur -> next;
cur -> next = Node;
while(Next)
{
Node = cur;
cur = Next;
Next = cur -> next;
cur -> next = Node;
}
//注释4
ListNode *CurHead = head;
ListNode *NewHead = cur;
ListNode *Next1 = head;
ListNode *Next2 = NewHead;
while(Next2)
{
Next1 = CurHead -> next;
Next2 = NewHead -> next;
CurHead -> next = NewHead;
NewHead -> next = Next1;
CurHead = Next1;
NewHead = Next2;
}
}
};
节点数小于三个则直接返回
,排列方式已经满足题目要求。快慢指针找中间结点
,并将中间节点的前一个结点指向空
。中间结点到最后结点进行反转
。反转之后的链表遍历到空时排列结束
。1.如有错误或者没能理解的地方,请及时评论或者私信,及时修改更新
。
2.会持续更新相关链表高频题目,分类专栏—数据结构
。
开发过程中,我们经常会遇到代码回滚的情况。正常人都知道,git 回滚有两大宝: ...
本文转载自微信公众号「Linux开发那些事儿」,作者 LinuxThings 。转载本文请联...
互联网业务往往使用MySQL数据库作为后台存储,存储引擎使用InnoDB。我们针对互联...
console.log ,作为一个前端开发者,可能每天都会用它来分析调试,但这个简单函...
前言 aop即是面向切面编程,众多Aop框架里Castle是最为人所知的,另外还有死去的...
继 Australis 和 Photon 之后,Mozilla 现又酝酿为 Firefox 带来名为Proton的全...
简介 “ 大家好我是帅哥欢迎来到帅哥的程序人生我会把经历分享出来助你了解圈内...
2月26日消息 众所周知,Windows 10 的安全更新和其他重要累计更新通常是在同一天...
一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候...
不少Windows 10用户之前都抱怨一个问题,那就是系统的屏幕出现了渲染问题,而微...