每天一題LeetCode【第44天】

T61. Rotate List【Medium

題目

給一個鏈表,向右輪轉(zhuǎn) k 個位置(k 是非負數(shù))。

例如:

給出 1->2->3->4->5->NULL 和 k = 2,
返回 4->5->1->2->3->NULL.

思路

主體思路:

① 求出長度 l

② 首位連通

② 右移 (l-k%l) 次 (因為 k 可能大于 l,所以要取余)

③ 把此刻的節(jié)點 next 設(shè)為 null,并返回原本的 next(因為它去了首節(jié)點)

邊界處理:

當(dāng) k = 0 或者 head 為 空時直接返回。

代碼

代碼自己寫的,能成功運行,稍作注釋

//用遞歸來完成算法
 public ListNode rotateRight(ListNode head, int k) {
        //若為0或者空則返回
        if(k==0||head==null){
            return head;
        }
        ListNode thisNode=head;
        ListNode returnNode=new ListNode(0);
        int x=1,n=1;
        //得到鏈表長度
        while(thisNode.next!=null){
            thisNode=thisNode.next;
            x++;
        }
        //連通起來
        thisNode.next=head;
        while(thisNode.next!=null){
            //找到對應(yīng)的節(jié)點,對它進行拆開重連
            if(n==(x-k%x)){
                returnNode=thisNode.next.next;
                thisNode.next.next=null;
                return returnNode;
            }
            thisNode=thisNode.next;
            n++;
        }
        return returnNode;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,922評論 0 33
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 2. Add Two Numbers 先初始化兩個結(jié)點,一個用來做head,一個作為指引node不斷向下延續(xù)的指針...
    Morphiaaa閱讀 971評論 0 0
  • 放松心情 ——寫給我的學(xué)生 欣 然 你憂郁的眼神 你無奈地嘆息 扣擊了多少人的心房 是母親的...
    yiyi_1650閱讀 387評論 0 0
  • ? 文:正紅〡編輯:正紅〡音樂:大魔王 這兩年,“情商”一詞極度火爆。在微信朋友圈,它幾乎天天出沒:《情商比你的智...
    正紅書屋閱讀 436評論 0 0

友情鏈接更多精彩內(nèi)容