逆时针旋转一个链表

题目:给定一个链表和一个位置k,k代表第几个元素。k位置之后的的元素逆时针旋转到前面,k位置之前的元素(包含k位置元素)旋转到后面。假定k小于链表的长度,如果k大于等于链表的长度,那么不对链表做改动。

思路:先找到k位置处的节点,这个节点将是新链表的头,然后继续向后遍历链表找到尾部节点,使尾部节点指向原先链表的头节点。

//因为要改变链表头,所以要传入头节点的引用
void rotate(ListNode **head_ref,int k)
{if(k <= 0)    return;ListNode *current = *head_ref;for(int i=0;i<k-1 && current != NULL;i++){current = current->next;}//current为NULL说明,k过长if(current == NULL)return;ListNode *kthNode = current;//循环完毕后current即时最后一个元素了while(current->next != NULL){current = current->next;}//将最后一个元素指向原链表的头current->next = *head_ref;//将kthNode的下一个节点最为新链表的头节点*head_ref = kthNode->next;kthNode->next = NULL;
}

链表--逆时针旋转一个链表相关推荐

  1. 将两个有序链表合并为一个链表任然有序C语言

    将两个有序链表合并为一个链表任然有序,两个链表都是从大到小或者从小到大. 方法: 1.将两个链表连起来,对所有元素进行排序. 2.因为两个链表的长度可能不同,则将两链表相同长度的一部分进行排序,将较长 ...

  2. 【Java】环形链表 ( 给定一个链表,判断链表中是否有环)

    题目描述 :给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 po ...

  3. 反转链表:输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。...

    2019独角兽企业重金招聘Python工程师标准>>> 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点.     为了正确的反转一个链表,需要调整链表 ...

  4. 环形链表。给定一个链表,判断链表中是否有环。(GO、PHP)

    给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...

  5. java链表交集并集,一个链表求集合并集交集的异常

    C/C++ code//求并集的函数: void bingji(mylist*p,mylist*q,mylist*&r)//r作为并集列表的头指针,p,q是输入的两个指针 { mylist * ...

  6. 链表之判断一个链表是否为回文结构(一)

    package com.zuo.linkedlist;import java.util.Stack;import com.zuo.linkedlist.Josephuskill2.Node;/*** ...

  7. python列表输出学生姓名学号链表_建立一个链表,记录学生的姓名,学号和成绩,

    展开全部 public class StudentPerson { /// /// 实例化一个新的学生e69da5e887aa3231313335323631343130323136353331333 ...

  8. leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

    一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...

  9. 链表之判断一个链表是否为回文结构(三)

    package com.chenyu.zuo.linkedList;import com.chenyu.zuo.linkedList.PrintCommonPart.Node;/*** 题目:给定一个 ...

最新文章

  1. MySQL-MMM实现MySQL高可用
  2. 什么样的数据适合缓存?
  3. 产品说,我只需要一个有亿点复杂的查询界面
  4. IBASE 不能被编辑
  5. idea工具debug断点红色变成灰色
  6. 【英语学习】【WOTD】trivial 释义/词源/示例
  7. SQL SERVER的字段类型说明
  8. 华为回应关于“获政府巨额补贴”报道;最高法:微信微博聊天记录可作为证据;GoLand 2020.1 路线图公布 | 极客头条...
  9. Python 三种过滤去重方法
  10. Android NFC标签读写 配置 过滤器总结 各类NFC数据类型NfcA NfcB IsoDep MifareClassic读取
  11. ArcGIS获取点图层对应栅格图层的栅格行列号(或属性值)
  12. 后盾网ThinkPHP教程许愿墙源码及后台管理模版下载
  13. python爬虫--王者荣耀高清壁纸下载
  14. 16岁初中生开发的软件,强大到令人发指!
  15. 南京邮电大学java实验报告_南京邮电大学java第二次实验报告
  16. 谓语动词语态和时态相结合
  17. Linux 静态IP,动态IP配置
  18. 用电力猫实现无线IPTV
  19. GIF录屏软件下载及使用
  20. 选择Seo老域名的方法

热门文章

  1. 【pycharm】英文输入法变成全角字符无法输入
  2. 渠道分析 之 渠道分析的价值 -3
  3. JavaSE编码实操
  4. 《密码安全新技术》课程总结报告
  5. WPF界面-手机QQ_DEMO
  6. linux下qt软件使用方法,QT入门 QT Creator 使用
  7. 机器学习实战(11)——初识人工神经网络
  8. 达人评测 i5 13500h和1240p选哪个好 i5 13500h和1240p对比
  9. 碧蓝航线最新服务器2018,2018最新碧蓝航线建造时间表 舰娘建造时间表一览
  10. 程序员的一百万种变现方式之2,努力多赚零花钱