zoukankan      html  css  js  c++  java
  • 61. Rotate List

    https://leetcode.com/problems/rotate-list/

    观察到:倒数第k%length个节点就是新头节点,新头节点的前一个点就是新尾节点

    corner case:当k % length = 0的时候,rotate之后还是和原链表一样,故无需变换

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode rotateRight(ListNode head, int k) {
    11         if(head == null || k == 0){
    12             return head;
    13         }
    14         int length = 1;
    15         ListNode tail = head;
    16         while(tail.next != null){
    17             length += 1;
    18             tail = tail.next;
    19         }
    20         if(k % length == 0){
    21             return head;
    22         }
    23         int newHeadIndex = length - k % length;
    24         
    25         ListNode newTail = head;
    26         ListNode newHead = head.next;
    27         while(newHeadIndex != 1){
    28             newTail = newTail.next;
    29             newHead = newHead.next;
    30             newHeadIndex -= 1;
    31         }
    32         tail.next = head;
    33         newTail.next = null;
    34         return newHead;
    35     }
    36 }
  • 相关阅读:
    面向对象的----多态性
    UIWebView控件
    UIImageView控件
    UIDatePicker控件
    UIActivityIndicatorView控件
    UIProgressView控件
    XIB文件链接controller文件&&加载rootviewcontroller
    UISegmentedControl控件
    UISlider控件
    UISwitch控件
  • 原文地址:https://www.cnblogs.com/TheLaughingMan/p/10154982.html
Copyright © 2011-2022 走看看