当前位置: 首页 > wzjs >正文

宁波建网站找哪家个人网站模板免费下载

宁波建网站找哪家,个人网站模板免费下载,wordpress分类高亮,建设推广营销型网站应该注意什么文章目录 1. 题目解析2. 讲解原理3. 编码实践 下面我们来分享一道简单的题目 -> 结点K个一组的链表反转(hard) 1. 题目解析 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链…

文章目录

    • 1. 题目解析
    • 2. 讲解原理
    • 3. 编码实践

下面我们来分享一道简单的题目 -> 结点K个一组的链表反转(hard)

1. 题目解析

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,么请将最后剩余的节点保持原有顺序。

你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

下面是一个简单的举例:
示例 1:
在这里插入图片描述
输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]
示例 2:
在这里插入图片描述
输入:head = [1,2,3,4,5], k = 3
输出:[3,2,1,4,5]

因此, 说白了, 就是给你一串链表, 然后要求你k个节点一组然后将其反转即可.

2. 讲解原理

本质求解思路是模拟算法. 这里模拟的思路可能有所不同, 下面提供一种模拟思路.

模拟策略:
1. 先求需要逆序多少组.
2. 重复n组长度为k的链表逆序.

下面解释几个问题:

  • 为什么要先求出需要逆序多少组?
    因为我们在处理链表的时候是对该节点是否要头插是不确定的, 比如示例2当中, 如果cur = 2, 则需要头插, 如果cur = 4, 则不能头插.
  • 如何求需要逆置多少组?
    很简单, 逆置组数 = 链表节点数量 / k.
  • 对于一组链表如何进行逆置?
    很简单, 新建一个虚拟节点, 然后挨个头插即可.

3. 编码实践

编码的难点: 编码的唯一难点在于, 在这个过程中会出现多个指针来回使用的情况, 需要搞清楚各个指针的作用以及逻辑.

/*** 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:ListNode* reverseKGroup(ListNode* head, int k) {// 1. 先求出链表需要逆序多少组? int size = 0;ListNode* cur = head;while(cur){size += 1;cur = cur->next;}int n = size / k; // 2. 逆序链表cur = head;ListNode* newHead = new ListNode;ListNode* prev = newHead;for(int i = 0; i < n; i++){ListNode* temp = cur; for(int j = 0; j < k; j++){ListNode* next = cur->next;cur->next = prev->next;prev->next = cur;cur = next;}prev = temp;}// 3. 添加无需逆置的可能存在的剩余链表部分if(cur) prev->next = cur;// 4. 释放多余空间, 准备ret结果 prev = newHead->next;delete newHead;return prev;}
};

在这里插入图片描述

代码中各链表的含义:
newHead: 始终指向虚拟节点
prev: 指向头插的前一个节点
temp: 标记下一组头插的前一个节点
cur: 指向原链表, 用来遍历
next: 用来记录原链表cur指向的下一个节点, 方便cur回归原链表.

在这里插入图片描述
时间复杂度是: O(N)
空间复杂度: O(1)

http://www.dtcms.com/wzjs/263598.html

相关文章:

  • 泰安人才市场廊坊seo推广
  • 百度网站关键词优化在哪里做宁波seo关键词
  • 南京做网站咨询南京乐识网站搜索关键词优化
  • 网站开发设计实训总结自动引流免费app
  • 做网站推广排名百度官方网址
  • 全球电子商务网站排名搜索引擎优化学习
  • 网站页面设计模板图片开发网站的流程
  • 做网站需要那些编程语言网络seo招聘
  • 武汉专业网站做网页百度导航下载安装手机导航
  • 视频网站后台设计不需要验证码的广告平台
  • 做门票的网站郑州seo排名扣费
  • 今日头条网站什么语言做的免费b站推广
  • 有谁会设制网站个人怎么在百度上做推广
  • 网站后台运营怎么做关键词优化的作用
  • 哪里有做网站优化的公司app推广工作是做什么的
  • 被墙域名黑别人网站汕头网站建设公司
  • 做电商宠物带哪个网站最好nba最新排行
  • 宁夏交通厅建设局网站电商网站定制开发
  • 品牌型网站制网络营销的方式和方法
  • 网站建设最新模板下载百度推广怎么推广
  • 东莞广告公司电话超级优化
  • 网站卖东西怎么做做seo用哪种建站程序最好
  • 郑州网站建设哪家最好武汉seo网络营销推广
  • 使用js做网站性能测试seo关键词排名优化怎样
  • 菜鸟教程网站怎么做江北关键词优化排名seo
  • 网站制作公司兴田德润怎么联系微信推广引流方法
  • 海宁网站建设女孩短期技能培训班
  • python网站开发高并发电话销售如何快速吸引客户
  • 武汉网站建设公司027培训心得体会感悟
  • 江苏省建设厅网站怎么登不上如何注册域名及网站