国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - C++實現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表)

C++實現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表)

2021-11-29 15:01Grandyang C/C++

這篇文章主要介紹了C++實現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

[LeetCode] 61. Rotate List 旋轉(zhuǎn)鏈表

Given the head of a linked list, rotate the list to the right by k places.

Example 1:

C++實現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表)

Input: head = [1,2,3,4,5], k = 2
Output: [4,5,1,2,3]

Example 2:

C++實現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表)

Input: head = [0,1,2], k = 4
Output: [2,0,1]

Constraints:

  • The number of nodes in the list is in the range [0, 500].
  • -100 <= Node.val <= 100
  • 0 <= k <= 2 * 109

這道旋轉(zhuǎn)鏈表的題和之前那道 Rotate Array 很類似,但是比那道要難一些,因為鏈表的值不能通過下表來訪問,只能一個一個的走,博主剛開始拿到這題首先想到的就是用快慢指針來解,快指針先走k步,然后兩個指針一起走,當(dāng)快指針走到末尾時,慢指針的下一個位置是新的順序的頭結(jié)點,這樣就可以旋轉(zhuǎn)鏈表了,自信滿滿的寫完程序,放到 OJ 上跑,以為能一次通過,結(jié)果跪在了各種特殊情況,首先一個就是當(dāng)原鏈表為空時,直接返回NULL,還有就是當(dāng)k大于鏈表長度和k遠遠大于鏈表長度時該如何處理,需要首先遍歷一遍原鏈表得到鏈表長度n,然后k對n取余,這樣k肯定小于n,就可以用上面的算法了,代碼如下:

 解法一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
    ListNode *rotateRight(ListNode *head, int k) {
        if (!head) return NULL;
        int n = 0;
        ListNode *cur = head;
        while (cur) {
            ++n;
            cur = cur->next;
        }
        k %= n;
        ListNode *fast = head, *slow = head;
        for (int i = 0; i < k; ++i) {
            if (fast) fast = fast->next;
        }
        if (!fast) return head;
        while (fast->next) {
            fast = fast->next;
            slow = slow->next;
        }
        fast->next = head;
        fast = slow->next;
        slow->next = NULL;
        return fast;
    }
};

這道題還有一種解法,跟上面的方法類似,但是不用快慢指針,一個指針就夠了,原理是先遍歷整個鏈表獲得鏈表長度n,然后此時把鏈表頭和尾鏈接起來,在往后走 n - k%n 個節(jié)點就到達新鏈表的頭結(jié)點前一個點,這時斷開鏈表即可,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
    ListNode *rotateRight(ListNode *head, int k) {
        if (!head) return NULL;
        int n = 1;
        ListNode *cur = head;
        while (cur->next) {
            ++n;
            cur = cur->next;
        }
        cur->next = head;
        int m = n - k % n;
        for (int i = 0; i < m; ++i) {
            cur = cur->next;
        }
        ListNode *newhead = cur->next;
        cur->next = NULL;
        return newhead;
    }
};

到此這篇關(guān)于C++實現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表)的文章就介紹到這了,更多相關(guān)C++實現(xiàn)旋轉(zhuǎn)鏈表內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/grandyang/p/4355505.html

延伸 · 閱讀

精彩推薦
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當(dāng)程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++學(xué)習(xí)C++編程的必備軟件

    學(xué)習(xí)C++編程的必備軟件

    本文給大家分享的是作者在學(xué)習(xí)使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復(fù)制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
  • C/C++C語言實現(xiàn)電腦關(guān)機程序

    C語言實現(xiàn)電腦關(guān)機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關(guān)機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
主站蜘蛛池模板: 久久久精品国产亚洲 | 国产精品美女久久久久久免费 | 成人精品视频免费 | 久久精品久久久久电影 | 亚洲欧美影院 | 亚洲视频久久久 | 亚洲一区二区三区四区的 | 成人自拍视频 | 这里只有精品在线视频观看 | 久久久久久亚洲精品中文字幕 | www.一区| 国产精品久久久久久久久 | a视频在线观看 | 天天澡天天狠天天天做 | 毛片aaa| 久久精品成人 | 黄色中文字幕 | 欧美一级全黄 | 综合久久亚洲 | 欧美日韩一区二区三区 | 欧美狠狠操 | 国产精品99精品久久免费 | 亚洲乱码国产乱码精品精的特点 | 精品一级 | 日韩中文字幕在线 | 国产在线一区二区三区 | 国产精品成人3p一区二区三区 | 国产一区二区在线视频 | 国产精品高清一区二区 | 九色 在线 | 毛片区 | 精品无码久久久久久久动漫 | 91av视频免费在线观看 | 黄色二区 | 日本免费在线 | 亚洲精品成a人在线 | 欧美在线小视频 | 寡妇高潮一级片 | 亚洲综合精品久久 | 国产欧美视频在线 | 国产精品久久久久精 |