博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 之Rotate List(18)
阅读量:5116 次
发布时间:2019-06-13

本文共 617 字,大约阅读时间需要 2 分钟。

      这题我的第一想法是用头插法,但实际上并不好做,因为每次都需要遍历最后一个。更简单的做法是将其连成环,找到相应的位置重新设头结点和尾结点。这过

有很多细节需要注意,比如K有可能是大于链表长度的,如何重新设置K等都要注意。

     

ListNode *rotateList(ListNode *head, int k)      {          if (head == nullptr || k == 0)return head;          ListNode *p = head;          int n = 1;          while (p->next)          {              n++;              p = p->next;          }          k =n - k%n;//k有可能大于n          p->next = head;          for (int i = 0; i < k; i++)              p = p->next;          head = p->next;          p->next = nullptr;          return head;      }
View Code

 

转载于:https://www.cnblogs.com/573177885qq/p/5508473.html

你可能感兴趣的文章
JAVA 多线程(一)
查看>>
Zookeeper选举算法原理
查看>>
嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...
查看>>
函数随笔
查看>>
哈尔滨工程大学ACM预热赛(A,C,H,I)
查看>>
3月29日AM
查看>>
全局光照模型与Rendering Equation(全局光照的最为基础的核心理论) .
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
二叉树的遍历
查看>>
安装Boost
查看>>
运维参考资料
查看>>
word怎样设置首页不显示页码
查看>>
LinkedList和 ArrayList的大数据面试资料(面试题)
查看>>
Python - 列表解析式/生成器表达式
查看>>
从C到JAVA,从面向过程到面向对象
查看>>
Underscore.js 1.3.3 中文解释
查看>>
博客园文章样式修改
查看>>
JDBC学习总结
查看>>
值域范围
查看>>
jQuery学习笔记(一) 取值、赋值的基本方法
查看>>