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

做游戏试玩网站wordpress电视主题

做游戏试玩网站,wordpress电视主题,模板网站开发推广,做网站犯法吗题目要求:给定链表的头结点,旋转链表,将链表每个节点向右移动K个位置。 示例: 输入:head [1,2,3,4,5], k2 输出:[4,5,1,2,3] 双指针思想: 先用双指针策略找到倒数K的位置,也就是(…

题目要求:给定链表的头结点,旋转链表,将链表每个节点向右移动K个位置。
示例:
输入:head = [1,2,3,4,5], k=2
输出:[4,5,1,2,3]
在这里插入图片描述

双指针思想:
先用双指针策略找到倒数K的位置,也就是(1,2,3)和4,5)两个序列,之后再将两个链表拼接成(4,5,1,2,3}就行了。
具体思路是:
因为k有可能大于链表长度,所以首先获取一下链表长度len,如果然后k=k % len,如果k == 0,则不用旋转,直接返回头结点。否则:
1、快指针先走k步
2、慢指针和快指针一起走
3、快指针走到链表尾部时,慢指针所在位置刚好是要断开的地方。把快指针指向的节点连到原链表头部,慢指针指向的节点断开和下一节点的联系
4、返回结束时慢指针指向节点的下一节点

import java.util.*;public class RotateRight_旋转数组 {public static void main(String[] args) {//int[] a = {1, 2, 3, 4, 5};ArrayList<Integer> lst = new ArrayList<>();//输入Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();Scanner input = new Scanner(s);while(input.hasNextInt()){lst.add(input.nextInt());}Integer[] a = lst.toArray(new Integer[lst.size()]);ListNode nodeA = initLinkedList(a); //数组初始化为链表ListNode nodeB = initLinkedList2(lst); //集合初始化为链表ListNode node = rotateRight(nodeB, 2);  //开始旋转System.out.println(toString(node));}//定义链表节点static class ListNode{public int val;public ListNode next;ListNode(int x){val = x;next = null;}}//数组初始化链表public static ListNode initLinkedList(Integer[] a){ListNode head = null, cur = null;for (int i = 0; i < a.length; i++){ListNode newNode = new ListNode(a[i]);if (i==0){head = newNode;cur = newNode;}else{cur.next = newNode;cur = cur.next;}}return head;}//集合初始化链表public static ListNode initLinkedList2(ArrayList a){ListNode head = null, cur = null;for (int i = 0; i < a.size(); i++){ListNode newNode = new ListNode((Integer) a.get(i));if (i==0){head = newNode;cur = newNode;}else{cur.next = newNode;cur = cur.next;}}return head;}//开始旋转public static ListNode rotateRight(ListNode head, int k) {if (head == null || k == 0) {return head;}ListNode temp = head;ListNode fast = head;ListNode slow = head;int len = 0;//链表的长度while (head != null) {head = head.next;len++;}//如果能整除,则直接返回该链表if (k % len == 0) {return temp;}while ((k % len) > 0) {k--;fast = fast.next;}while (fast.next != null) {fast = fast.next;slow = slow.next;}ListNode res = slow.next;slow.next = null;fast.next = temp;return res;}//输出链表public static String toString(ListNode head) {ListNode current = head;//StringBuilder可以用来拼接字符串StringBuilder sb = new StringBuilder();while(current !=null){sb.append(current.val).append("\t");current = current.next;}return sb.toString();}}
http://www.yayakq.cn/news/595115/

相关文章:

  • 企业网站制作的书wordpress 付费
  • 做网站营业范围企业网站 带后台
  • 开封网站设计电商设计公司
  • 泉州做网站企业工程建设是干什么的
  • 网站服务器 优帮云东台做网站的
  • 网站框架文案框架网页模板下载
  • 医疗机构网站以患者做宣传seo怎么优化网站排名
  • 特价流量网站建设项目招标网站
  • 龙岗网站优化学做网站多少钱
  • 阿里云服务器怎么发布网站电子工程网
  • 小松建设的官方网站wordpress视频播放代码
  • 外贸网站多语言网站制作 郑州
  • 佛山建站网站模板兰州市住房和城乡建设局网站
  • 什么网站备案容易审核花都定制型网站建设
  • 欧美男女直接做的视频网站wordpress 模板 破解
  • 专业商城网站建设价格上海制作网页哪家好
  • 网站推广结束语wordpress网易云插件
  • 松原网站推广wordpress英文主题变中文版
  • 手机网站功能开发方案沭阳网站定制
  • 网站可不可以做自己的专利php网站 源码
  • 低价网站制作企业怎么样开发微信小程序
  • 网站建设常用软件jas全国icp备案查询
  • 山东省住房和城乡建设厅定额站子网站php 怎么做网站超链接
  • 电子商务网站建设作业文档wordpress增加下载功能
  • 郝友做的网站邯郸捕风科技有限公司
  • 开发外贸网站开发郑州seo顾问热狗hotdoger
  • 网站建设需要哪些网络技术网站中搜索关键词
  • 学网站开发月薪多少钱黄岩地区做环评立项在哪个网站
  • 淘宝这种网站怎么做的?营销型网站的建设步骤
  • 小程序开发外包服务合同南安seo教程