leetcode61 旋转链表
生活随笔
收集整理的這篇文章主要介紹了
leetcode61 旋转链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個鏈表,旋轉鏈表,將鏈表每個節點向右移動?k?個位置,其中?k?是非負數。
示例?1:
輸入: 1->2->3->4->5->NULL, k = 2
輸出: 4->5->1->2->3->NULL
解釋:
向右旋轉 1 步: 5->1->2->3->4->NULL
向右旋轉 2 步: 4->5->1->2->3->NULL
示例?2:
輸入: 0->1->2->NULL, k = 4
輸出: 2->0->1->NULL
解釋:
向右旋轉 1 步: 2->0->1->NULL
向右旋轉 2 步: 1->2->0->NULL
向右旋轉 3 步:?0->1->2->NULL
向右旋轉 4 步:?2->0->1->NULL
思路:找準斷點,直接調指針即可。
注意:長度可能超過鏈表長度,要取模。
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/ class Solution {public ListNode rotateRight(ListNode head, int k) {if(head==null){return null;}int len=0;ListNode temp=head;while(temp!=null){temp=temp.next;len++;}k=k%len;ListNode node=head;ListNode fast=head;while(k-->0){fast=fast.next;}while(fast.next!=null){node=node.next;fast=fast.next;}fast.next=head;ListNode ans=node.next;node.next=null;return ans;} }?
總結
以上是生活随笔為你收集整理的leetcode61 旋转链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP与UDP特点与区别
- 下一篇: 傻子都能看懂的马拉车Manacher