多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 【LeetCode】Reorder List

【LeetCode】Reorder List

來源:程序員人生   發布時間:2014-10-12 19:35:51 閱讀次數:2888次

Given a singly linked list LL0L1→…→Ln-1Ln,
reorder it to: L0LnL1Ln-1L2Ln-2→…

You must do this in-place without altering the nodes' values.

For example,
Given {1,2,3,4}, reorder it to {1,4,2,3}.

/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */

【題意】

給定一個鏈表,把最后一個結點插入到第1個結點后,倒數第二個結點插入到第2個結點后,倒數第三個結點插入到第3個結點后,以此類推……

【思路】

由題意知,后面 (n-1)/2 個結點需要分別插入到前面 (n-1)/2 個結點后。

那么先把鏈表分為兩段,前面 n-(n-1)/2 個結點為被插入鏈表,和后面 (n-1)/2 個結點為插入鏈表。

在插入之前,需先把插入鏈表逆序,即第n個結點->第n-1個結點->...

【Java代碼】

public class Solution { public void reorderList(ListNode head) { ListNode node = head; int cnt = 0; while (node != null) { cnt++; node = node.next; } if (cnt < 3) return;//3個以下的結點不需要移動 int k = (cnt - 1) / 2;//需要移動的后k個結點 int i = 1; node = head; while (i++ < cnt - k) { node = node.next; } ListNode begin = node.next;//用begin表示需要移動的后k個結點的開始 node.next = null;//把不需要移動的部分結尾設為null //把需要移動的k個結點逆序 ListNode pre = begin; ListNode cur = begin.next; begin.next = null; while (cur != null) { ListNode next = cur.next; cur.next = pre; begin = cur; pre = cur; cur = next; } ListNode node1 = head; ListNode node2 = begin; while (node1 != null && node2 != null) { pre = node1; cur = node2; node1 = node1.next;//這兩行一定要放在下面兩行之前,因為pre和node1指向同一個結點,下面操作會改變node1的next;cur和node2同理 node2 = node2.next; cur.next = pre.next;//這兩行代碼是把cur插入到pre后 pre.next = cur; } } }

【感受】

代碼寫起來超惡心,寫著寫著就混亂了,一會兒就不知道next指的是哪個結點了。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91成人国产福利 | 亚洲天堂首页 | 性激烈的欧美三级视频中文字幕 | 永久在线毛片免费观看 | 欧美激情免费a视频 | 波多野结衣最新 | 狠狠躁天天躁夜夜躁夜天战 | 毛片色| 国产精品福利视频一区二区三区 | 午夜dj影视大全视频 | 日韩天堂 | 狠狠躁天天躁夜夜躁夜天战 | 国产一区二区三区久久精品小说 | 欧美va在线观看 | 欧美欧美欧美 | 亚色成人| 色综合久久综合欧美综合网 | 日本高清免费视频色www | 动漫精品一级毛片动漫 | 国产模特众筹精品视频 | 一级毛片短视频 | 伊人久久99 | 久久久亚洲欧洲国产 | 伊人一本之道 | 日本a级精品一区二区三区 日本a级毛片免费视频播放 | 亚洲乱码一区二区三区在线观看 | 亚洲一二区视频 | 秋霞福利 | 最近韩国动漫hd免费观看 | 最近最新免费中文字幕高清 | 精品少妇一区二区三区视频 | 免费在线日本 | 男女视频网站在线观看 | babes性欧美高清 | 亚洲免费人成在线视频观看 | 日本不卡视频在线视频观看 | xxxx性bbbb欧美视频 | 日本在线一本 | 九色欧美| 国产成人啪精品视频免费网 | 免费观看wwwwwww |