亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[LintCode/LeetCode] Rotate List

Blackjun / 3677人閱讀

摘要:而后吾當(dāng)依除取余之法,化大為小,則指針不致于越界也。后欲尋右起第結(jié)點(diǎn),令快指針先行數(shù)日,及至兩指針相距為,便吟鞭東指,與慢指針策馬共進(jìn)??炻羔樢嘀褂谄渌?。舞動(dòng)長劍,中宮直入,直取首級(jí),而一掌劈空,已鴻飛冥冥。自此,一代天驕,霸業(yè)已成。

Problem

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

Example

Given 1->2->3->4->5 and k = 2, return 4->5->1->2->3.

Note

這是一道有故事的題目。
k有多大?其翼若垂天之云,則或長于鏈表。鏈表幾長?北海也,天池也,其廣數(shù)千里,則k亦可容于鏈表也。
故吾必先窮盡鏈表之長度,如若head為null,抑或其長可為k所整除,則此題不必再做,返回head可也。
而后吾當(dāng)依除len取余之法,化大k為小k,則指針不致于越界也。后欲尋右起第k結(jié)點(diǎn),令快指針先行數(shù)日,及至兩指針相距為k,便吟鞭東指,與慢指針策馬共進(jìn)。則快指針行至null時(shí),慢指針可至右起第k處矣。
方是時(shí)也,孤燈長夜,指飛鍵落。如風(fēng)吹敗葉,雨打窗欞。快慢指針亦止于其所焉。此時(shí)看官不妨溫酒一盞,看那鏈表翻轉(zhuǎn),指針易位。那新頭目喚作curhead,正是slow所指之人。fast舞動(dòng)長劍,中宮直入,直取head首級(jí),而slow一掌劈空,null已鴻飛冥冥。
自此,curhead一代天驕,霸業(yè)已成。

Solution
public class Solution {
    public ListNode rotateRight(ListNode head, int k) {
        ListNode fast = head, slow = head;
        int len = 0;
        while (fast != null) {
            fast = fast.next;
            len++;
        }
        if (head == null || k % len == 0) return head;
        fast = head;
        k = k % len;
        while (k-- > 0) fast = fast.next;
        while (fast.next != null) {
            fast = fast.next;
            slow = slow.next;
        }
        ListNode curhead = slow.next;
        slow.next = null;
        fast.next = head;
        return curhead;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/65689.html

相關(guān)文章

  • [LintCode/LeetCode] Rotate Array

    Problem Given an array, rotate the array to the right by k steps, where k is non-negative. Example Example 1: Input: [1,2,3,4,5,6,7] and k = 3Output: [5,6,7,1,2,3,4]Explanation:rotate 1 steps to the r...

    chanthuang 評(píng)論0 收藏0
  • [LintCode/LeetCode] Rotate Image

    摘要:兩種方法,轉(zhuǎn)置鏡像法和公式法。首先看轉(zhuǎn)置鏡像法原矩陣為轉(zhuǎn)置后水平鏡像翻轉(zhuǎn)后所以,基本的思路是兩次遍歷,第一次轉(zhuǎn)置,第二次水平鏡像翻轉(zhuǎn)變換列坐標(biāo)。公式法是應(yīng)用了一個(gè)翻轉(zhuǎn)的公式如此翻轉(zhuǎn)四次即可。二者均可,并無分別。 Problem You are given an n x n 2D matrix representing an image.Rotate the image by 90 de...

    BenCHou 評(píng)論0 收藏0
  • [LintCode/LeetCode] Meeting Rooms

    Problem Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei), determine if a person could attend all meetings. Example Given intervals = [[0,30],[...

    Noodles 評(píng)論0 收藏0
  • [LintCode/LeetCode] Nth to Last Node in List

    摘要:依然是一道找倒數(shù)第個(gè)結(jié)點(diǎn)的鏈表題,用雙指針做。先走,然后和一起走,直到為,的位置就是倒數(shù)第個(gè)位置。 Problem Find the nth to last element of a singly linked list. The minimum number of nodes in list is n. Example Given a List 3->2->1->5->null ...

    Salamander 評(píng)論0 收藏0
  • [LintCode/LeetCode] Copy List with Random Pointer

    摘要:大體意思就是,先復(fù)制到,順便將所有的放在再復(fù)制所有的到,順便將所有的放在最后令,令,將和分離,返回的頭結(jié)點(diǎn) Problem A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. ...

    Jacendfeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<