<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      25. K個一組翻轉鏈表

      題目鏈接

      解題思路:

      直接上代碼:

      /**
       * Definition for singly-linked list.
       * struct ListNode {
       *     int val;
       *     ListNode *next;
       *     ListNode() : val(0), next(nullptr) {}
       *     ListNode(int x) : val(x), next(nullptr) {}
       *     ListNode(int x, ListNode *next) : val(x), next(next) {}
       * };
       */
      class Solution {
      public:
          // 翻轉一個子鏈表,并且返回新的頭與尾
          pair<ListNode*, ListNode*> myReverse(ListNode* head, ListNode* tail) {
              ListNode* prev = tail->next;
              ListNode* p = head;
              while (prev != tail) {
                  ListNode* nex = p->next;
                  p->next = prev;
                  prev = p;
                  p = nex;
              }
              return { tail, head };
          }
      
          ListNode* reverseKGroup(ListNode* head, int k) {
              // hair->next保存的是整個鏈表的頭結點
              ListNode* hair = new ListNode(0);
              hair->next = head;
              ListNode* pre = hair;
      
              // 循環里,head被重復作為每一組鏈表的第一個結點,tail被重復作為每一組鏈表的最后一個節點
              while (head) {
                  // pre->next保存每一組鏈表的第一個節點
                  ListNode* tail = pre;
                  // 查看剩余部分長度是否大于等于 k
                  for (int i = 0; i < k; ++i) {
                      tail = tail->next;
                      if (!tail) {
                          return hair->next;
                      }
                  }
                  // nex保存每一組鏈表最后一個節點的后繼節點
                  ListNode* nex = tail->next;
      
                  pair<ListNode*, ListNode*> result = myReverse(head, tail);
                  head = result.first;
                  tail = result.second;
                  // 這里是 C++17 的寫法
                  // tie(head, tail) = myReverse(head, tail);
                  // 把子鏈表重新接回原鏈表
                  pre->next = head;
                  tail->next = nex;
                  // pre保存本組的最后一個節點,因此在下一次循環中,pre->next即為下一組的第一個節點,
                  // 進而起到鏈接上下兩個組的作用
                  pre = tail;
                  // 當鏈表的節點個數是k的整數時,最后一次翻轉之后,tail->next為nullptr,從而跳出循環
                  head = tail->next;
              }
      
              return hair->next;
          }
      };

       

      posted @ 2021-04-02 00:48  洗盞更酌  Views(91)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 成av免费大片黄在线观看| 中国帅小伙gaysextubevideo| 类乌齐县| 亚洲精品有码在线观看| 国产真实乱人偷精品人妻| 777奇米四色成人影视色区| 夜夜春久久天堂亚洲精品| 亚洲日韩中文字幕在线播放| 男人一天堂精品国产乱码| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 石景山区| 丰满人妻熟妇乱又精品视| 强奷乱码中文字幕| 国产精品自拍视频第一页| 亚洲av无码精品蜜桃| 97人人模人人爽人人喊网| 激情综合色综合啪啪五月| 中文字幕日韩国产精品| 四虎库影成人在线播放| 亚洲永久一区二区三区在线| 亚洲国产精品成人一区二区在线| 熟女系列丰满熟妇AV| 99午夜精品亚洲一区二区| 日日猛噜噜狠狠扒开双腿小说| 国产极品美女高潮抽搐免费网站| 乌克兰丰满女人a级毛片右手影院| 国产午夜三级一区二区三| 日产日韩亚洲欧美综合下载| 天堂久久久久VA久久久久| 国产中文字幕在线一区| 国产精品不卡一区二区在线| 使劲快高潮了国语对白在线| 亚洲天堂一区二区三区四区| 无码A级毛片免费视频下载| 国产精品黄色一区二区三区| 国产成人精品1024免费下载| 亚洲国产成人久久综合区| 成av人片一区二区久久| 国产精品人妻熟女男人的天堂 | 日韩不卡一区二区在线观看| 国内自拍视频在线一区|