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

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

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

      [leetcode]算法題目 - Reverse Nodes in k-Group

      Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.

      If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.

      You may not alter the values in the nodes, only nodes itself may be changed.

      Only constant memory is allowed.

      For example,
      Given this linked list: 1->2->3->4->5

      For k = 2, you should return: 2->1->4->3->5

      For k = 3, you should return: 3->2->1->4->5

       

      分析:

      鏈表操作,本身用不上什么高大上的算法或者數據結構。不過其中那些繁雜的小細節很容易搞得頭大,很少能有人把這種題目一次寫對吧。更可恨的是,就算寫完了,隔一天在看自己之前寫的思路,依然要費好多腦細胞才能理清楚。。。。。

      這道題的思路是,先計算出來鏈表的長度len,然后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 reverseKGroup(ListNode head, int k) {
      14         int len = 0;
      15         ListNode headbp = head;
      16         while(headbp != null){
      17             len++;
      18             headbp = headbp.next;
      19         }
      20         if(len < 2){return head;}
      21         
      22         int reverseTimes = (len / k);
      23         
      24         ListNode myhead = new ListNode(0);
      25         myhead.next = head;
      26         ListNode curr = myhead;
      27         ListNode next = head;
      28         ListNode prev = null;
      29         ListNode rhead = curr;
      30         ListNode rtail = curr.next;
      31         
      32         for(int j=0;j<reverseTimes;j++){
      33             rhead = curr; 
      34             rtail = curr.next; 
      35             curr = curr.next;             
      36             next = curr;
      37             for (int i = 0; i < k; i++) {
      38                 next = next.next;
      39                 curr.next = prev;
      40                 prev = curr;
      41                 curr = next;
      42             }
      43             rhead.next = prev;
      44             rtail.next = next;
      45             prev = null;
      46             curr = rtail;
      47         }
      48         return myhead.next;
      49     }
      50 }

       

      posted on 2015-04-16 00:53  Horstxu  閱讀(287)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 午夜精品区| 国产精品国三级国产专区| 日韩精品国产精品十八禁| 国产精品日韩中文字幕熟女| 精品国产乱码久久久久久婷婷| 久久人体视频| 男人天堂亚洲天堂女人天堂| 国产免费踩踏调教视频| 蜜桃av亚洲精品一区二区| 日日噜噜噜夜夜爽爽狠狠视频 | 精品国产午夜福利在线观看| 四虎国产精品永久在线| 国产在线观看免费观看| 精品国产综合成人亚洲区| 亚洲国产精品成人无码区| 青青草无码免费一二三区| 影视先锋av资源噜噜| 国产a级三级三级三级| 新野县| 亚洲暴爽av天天爽日日碰| 日韩av毛片福利国产福利| 狠狠色丁香婷婷综合尤物| 丝袜美腿亚洲综合第一页| 免青青草免费观看视频在线| 九九热视频精选在线播放| 久久精品亚洲精品国产色婷| 好吊妞| 欧美成人h亚洲综合在线观看| 国产精品国产三级国av | 99久久精品久久久久久婷婷 | 后入内射无码人妻一区| 国产成人精品国内自产色 | 国产无遮挡又黄又爽又色| 久久精品高清一区二区三区| 一区二区三区激情都市| 国产精品久久久久av福利动漫| 色五月丁香五月综合五月| 99久久er热在这里只有精品99| 中文字幕人成乱码熟女| 亚洲乱熟乱熟女一区二区| 国产成人一区二区三区免费 |