## Leetcode : 147. 对链表进行插入排序

news/2024/4/15 4:23:12/文章来源:https://blog.csdn.net/weixin_44379563/article/details/136510600

##### 思路：设置左右两对指针，分别负责比较和更改；相比于数组多了pre前置指针，用于修改链表的顺序。

``````#include <iostream>using namespace std;//Definition for singly-linked list.struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}
};// class Solution {
// public:
//         bool flag = false;
//         while (slow->next != NULL){
//             while (fast->next != NULL){
//                 if (fast->val > fast->next->val){
//                     ListnodeSwap(fast, fast->next);
//                     flag = true;
//                 }
//                 fast = fast->next;
//             }
//             if (flag == false) break;
//             fast = slow;
//             flag = false;
//         }
//     }
//     void ListnodeSwap(ListNode* a, ListNode* b){
//         int temp = a->val;
//         a->val = b->val;
//         b->val = temp;
//     }
// };class Solution {public:ListNode* insertionSortList(ListNode* head) {ListNode* root = new ListNode(0);ListNode* left_pre = root;left_pre->next = head;ListNode* left = head;ListNode* right = head->next;ListNode* right_pre = head;while (right != NULL){while (left->val <= right->val && left != right){left_pre = left;left = left->next;}if (left == right){right_pre = right;right = right->next;}else{right_pre->next = right->next;right->next = left;left_pre->next = right;if (left == head) head = right;right = right_pre->next;}left = head;left_pre = root;}return head;}
};int main(){Solution s;// ListNode* head = new ListNode(4, new ListNode(2, new ListNode(1, new ListNode(3))));ListNode* head = new ListNode(-1, new ListNode(5, new ListNode(3, new ListNode(4, new ListNode(0)))));ListNode* res = s.insertionSortList(head);for (ListNode* i = res; i != NULL; i = i->next){cout << i->val << " ";}return 0;
}``````

### 请说明Vue中的异步组件加载

Vue中的异步组件加载是指当页面需要渲染某个组件时&#xff0c;可以在需要时再去加载这个组件&#xff0c;而不是在页面初始化的时候就将所有组件一次性加载进来。这种方式能够有效降低页面的初始加载时间&#xff0c;提升用户体验。 在Vue中&#xff0c;我们可以使用import函…

### 【开源物联网平台】FastBee认证方式和MQTT主题设计

&#x1f308; 个人主页&#xff1a;帐篷Li &#x1f525; 系列专栏&#xff1a;FastBee物联网开源项目 &#x1f4aa;&#x1f3fb; 专注于简单&#xff0c;易用&#xff0c;可拓展&#xff0c;低成本商业化的AIOT物联网解决方案 目录 一、接入步骤 1.1 设备认证 1.2 设备交…

### Python算法题集_搜索插入位置

Python算法题集_搜索插入位置 题51&#xff1a;搜索插入位置1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【二分法查找】2) 改进版一【二分法查找终止条件判断】3) 改进版二【第三方模块】 4. 最优算法5. 相关资源 本文为Python算法题集之一的…