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

广东网站建设包括什么软件重庆营销型网站建设公司

广东网站建设包括什么软件,重庆营销型网站建设公司,上虞做网站,大学生做企业网站题目要求:给定链表的头结点,旋转链表,将链表每个节点向右移动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.mmbaike.com/news/56813.html

相关文章:

  • 电商网站开发方案seo优化关键词
  • 曰本真人做爰下载网站廊坊seo整站优化
  • 网站建设更新在线排名优化工具
  • 江西新余渝水区疫情最新情况windows优化大师兑换码
  • 免费b2b网站大全全职高手提高seo排名
  • 唐山专业网站建设苏州百度搜索排名优化
  • 大连建站平台如何让别人在百度上搜到自己公司
  • 邯郸品牌策划设计seo技术优化
  • 南京做网站的公司有哪些做网站怎么做
  • 惠州微网站推广方案如何自己开发一个平台
  • 人才网官方网站百度有效点击软件
  • 极速网站建设免费引流推广方法
  • 西餐厅网站模板推广引流哪个软件最好
  • 免费做电子相册的网站怎么写软文推广
  • 医院做网站的费用多少媒介星软文平台
  • 网站开发后台需要哪些技术创意营销策划方案
  • asp网站搭建软件艾滋病多长时间能查出来
  • 网站开发软件开发怎么样广东省人大常委会
  • 内容相同的 网站seo搜索引擎优化是什么
  • 综合网站建设广州优化营商环境条例
  • 英语网站建设汕头seo排名公司
  • 事业单位网站建设方案文案短句干净治愈
  • 成都网站建设培训学校114网址大全
  • 个人网站设计需求分析软文代写发布
  • 做外贸出口衣服的网站百度首页排名优化多少钱
  • 自己怎么做企业网站百度百度一下就知道
  • 在越南做一个网站怎么做建站优化推广
  • 安徽省建设厅查询网站苏州seo关键词优化价格
  • 诸城网站制作sem专员
  • 荣誉章标志做网站5000元网站seo推广