LeetCode 剑指Offer II 029.排序的循环链表[链表 双指针] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 剑指Offer II 029.排序的循环链表[链表 双指针] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
一道有关链表的中等题,其实就是分情况讨论的模拟题,首先考虑序列为空和1个的情况,直接插入node即可,超过1的长度就需要循环遍历,又要考虑两种情况,插入的node是在序列中还是在循环交界处,即最大值和最小值的中间(也即node是最大值或者最小值),代码如下:
/*
// Definition for a Node.
class Node
public:
int val;
Node* next;
Node()
Node(int _val)
val = _val;
next = NULL;
Node(int _val, Node* _next)
val = _val;
next = _next;
;
*/
class Solution
public:
Node* insert(Node* head, int insertVal)
Node *node = new Node(insertVal);
// 序列中无元素
if(head == nullptr)
node->next = node;
return node;
// 序列中只有一个元素
if(head->next == nullptr)
head->next = node;
node->next = head;
return head;
Node *cur = head, *next = head->next;
while(next != head)
// node在序列中
if(insertVal >= cur->val && insertVal <= next->val)
break;
// 到达循环交界处
if(cur->val > next->val)
// 如果node在交界处
if(insertVal > cur->val || insertVal < next->val)
break;
cur = next;
next = next->next;
cur->next = node;
node->next = next;
return head;
;
以上是关于LeetCode 剑指Offer II 029.排序的循环链表[链表 双指针] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
Java每日一题——>剑指 Offer II 029. 排序的循环链表
Java每日一题——>剑指 Offer II 029. 排序的循环链表