当前位置: 首页 > 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.dinnco.com/news/66455.html

相关文章:

  • 广州手机网站建设公司哪家好最常见企业网站公司有哪些
  • 素材网站推荐手机免费建站app
  • 如何做阿里巴巴的网站少儿编程
  • 专业做包装的电商网站长春网站关键词排名
  • 网站做贷款许可证老客外链
  • 企业网站建设一条龙服务内容今日头条热搜榜前十名
  • 做电台需要的文章从哪个网站找武汉seo结算
  • java源代码网站免费发布平台
  • 自己做网站主机怎么自己创建一个网页
  • 做搜狗pc网站优化快速网站快速排名的方法
  • 做分销网站多少钱自媒体平台排名前十
  • 什么平台可以做网站推广百度官网首页网址
  • 上海快速建设网站公司精准获客
  • 淘宝的好券网站怎么做广东: 确保科学精准高效推进疫情
  • 网销都是在那些网站做推广如何做市场营销推广
  • 网站百度权重没有数据推广软文是什么意思
  • iis7.5部署网站新闻式软文
  • 郑州微网站建设视频优化是什么意思
  • 校园服装网站建设预算哪个平台可以免费推广
  • 零基础怎么自学动画制作seo关键词排名注册价格
  • 模板网站购买seo优化网站快速排名
  • 有招聘网站策划的吗代写文章接单平台
  • wordpress wp_list_categories新乡网站优化公司推荐
  • 郑州手机网站制作公司哪家好百度搜索引擎网站
  • 计算机网站的开发流程建立个人网站
  • 物流网络的概念西安seo公司哪家好
  • 菏泽公司网站建设企业内训课程
  • 北海疫情最新消息广州网站运营专业乐云seo
  • 网站建设 制作免费网络推广平台
  • 嵊州做网站最吸引人的营销广告文案