zoukankan      html  css  js  c++  java
  • LeetCode Rotate List

    Given a list, rotate the list to the right by k places, where k is non-negative.

    For example:
    Given 1->2->3->4->5->NULL and k = 2,
    return 4->5->1->2->3->NULL.

    使用两个指针,第一个先走k步,然后第二个开始走,知道第一个走到最后一个。

    这样第二个指针正好是 len-k个,它就是新链表的最后一个元素。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) {
     7  *         val = x;
     8  *         next = null;
     9  *     }
    10  * }
    11  */
    12 public class Solution {
    13     public ListNode rotateRight(ListNode head, int n) {
    14         ListNode temp = head;
    15         if(temp==null) return temp;
    16         int len=0;
    17         while (temp != null) {
    18             ++len;
    19             temp = temp.next;
    20         }
    21         n = n % len;
    22         ListNode fast=head;
    23         ListNode slow = head;
    24         for (int i = 0; i < n; i++) {
    25             fast = fast.next;
    26         }
    27         while (fast.next != null) {
    28             fast=fast.next;
    29             slow = slow.next;
    30         }
    31         fast.next=head;
    32         head = slow.next;
    33         slow.next = null;
    34         return head;
    35     }
    36 }
  • 相关阅读:
    laravel-admin 关闭debug模式导致异常信息到页面的排查
    laravel-sql
    laravel任务调度出现僵尸进程
    PHP获取首字母笔记
    IP库笔记
    深入理解 js 闭包
    用键盘实现上下选择
    密码保护
    评分效果
    数组去重
  • 原文地址:https://www.cnblogs.com/birdhack/p/4219863.html
Copyright © 2011-2022 走看看