leetcode 61. 旋轉(zhuǎn)鏈表

題目描述

給定一個鏈表已亥,旋轉(zhuǎn)鏈表引镊,將鏈表每個節(jié)點(diǎn)向右移動 *k *個位置胸嘁,其中 *k *是非負(fù)數(shù)桂塞。

示例 1:

**輸出:** 4->5->1->2->3->NULL
**解釋:**
向右旋轉(zhuǎn) 1 步: 5->1->2->3->4->NULL
向右旋轉(zhuǎn) 2 步: 4->5->1->2->3->NULL

示例 2:

輸入:** 0->1->2->NULL, k = 4
**輸出:** `2->0->1->NULL`
**解釋:**
向右旋轉(zhuǎn) 1 步: 2->0->1->NULL
向右旋轉(zhuǎn) 2 步: 1->2->0->NULL
向右旋轉(zhuǎn) 3 步: `0->1->2->NULL`
向右旋轉(zhuǎn) 4 步: `2->0->1->NULL`

解體思路:

本題為鏈表的重新構(gòu)造問題凹蜂,鏈表指針的向右或者向左移動K步,首先要計(jì)算出移動后的頭指針位置m阁危。將頭指針指向該位置m然后將鏈表的尾部指向初始狀態(tài)的頭部形成循環(huán)鏈表 玛痊,最后再把位置m之前的節(jié)點(diǎn)的下一個指針指向NULL 作為結(jié)尾,構(gòu)造完成狂打。

頭指針位置m的確定(計(jì)算):

如果向右移動比較簡單只要將指針位置按照鏈表的方向移動K步如果到達(dá)隊(duì)尾擂煞,則可以通過模運(yùn)算 重新指向頭部繼續(xù)移動所以

m = k%lenList

如果方向做移動則稍微復(fù)雜 需要先用隊(duì)列長度減去移動步數(shù)K后得到左移的位置 ,最后為了防止超出頭尾部分也需要做一次摸操作公式如下:

m = (lenList - k%lenList)%lenList

程序代碼

class Solution(object):
    def rotateRight(self, head, k):
        """
        :type head: ListNode
        :type k: int
        :rtype: ListNode
        """
 
        if  not head : return None
        lenList = 0
        p,ptmp = head,head;
        while p :
            p=p.next
            lenList +=1
        # m起始的位置
        m  = (lenList - k%lenList)%lenList
        p = head
        while m > 0 :
            p=p.next
            m-=1
        head = p # 把頭指針放到相應(yīng)起始位置
        while lenList>0 :
            if  not p.next:
                p.next = ptmp
            else:
                p  = p.next

            lenList -=1
        p.next = None
        return head
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末菱父,一起剝皮案震驚了整個濱河市颈娜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浙宜,老刑警劉巖官辽,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粟瞬,居然都是意外死亡同仆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門裙品,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俗批,“玉大人,你說我怎么就攤上這事市怎∷晖” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵区匠,是天一觀的道長干像。 經(jīng)常有香客問我,道長驰弄,這世上最難降的妖魔是什么麻汰? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮戚篙,結(jié)果婚禮上五鲫,老公的妹妹穿的比我還像新娘。我一直安慰自己岔擂,他們只是感情好位喂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乱灵,像睡著了一般忆某。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阔蛉,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天弃舒,我揣著相機(jī)與錄音,去河邊找鬼状原。 笑死聋呢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的颠区。 我是一名探鬼主播削锰,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼毕莱!你這毒婦竟也來了器贩?” 一聲冷哼從身側(cè)響起颅夺,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蛹稍,沒想到半個月后吧黄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唆姐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年拗慨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奉芦。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡赵抢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出声功,到底是詐尸還是另有隱情烦却,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布先巴,位于F島的核電站短绸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏筹裕。R本人自食惡果不足惜醋闭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朝卒。 院中可真熱鬧证逻,春花似錦、人聲如沸抗斤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑞眼。三九已至龙宏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伤疙,已是汗流浹背银酗。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徒像,地道東北人黍特。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像锯蛀,于是被迫代替她去往敵國和親灭衷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 61. 旋轉(zhuǎn)鏈表給定一個鏈表旁涤,旋轉(zhuǎn)鏈表翔曲,將鏈表每個節(jié)點(diǎn)向右移動 k 個位置迫像,其中 k 是非負(fù)數(shù)。示例:輸入: 1-...
    杏仁小核桃閱讀 181評論 0 0
  • 題目地址:https://leetcode-cn.com/problems/rotate-list/ 題目: 給定...
    monkey01閱讀 589評論 0 0
  • 題目描述: 給定一個鏈表瞳遍,旋轉(zhuǎn)鏈表闻妓,將鏈表每個節(jié)點(diǎn)向右移動 k 個位置,其中 k 是非負(fù)數(shù)傅蹂。 示例 1:輸入: 1...
    小北覓閱讀 175評論 0 0
  • 作者: 碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。 小米廣告第三代廣告引擎的設(shè)計(jì)者算凿、開發(fā)者份蝴;負(fù)責(zé)小米應(yīng)用商店、日歷氓轰、開屏廣告業(yè)務(wù)...
    碼蹄疾閱讀 232評論 0 0
  • 第一次跟你見面是在七餐三樓婚夫,工作室納新,約在那面試署鸡;從跟你短信聯(lián)系面試地點(diǎn)開始案糙,到面試結(jié)束,小淑女一枚靴庆,跟我氣質(zhì)一...
    上古村閱讀 384評論 0 0