[Leetcode] Rotate List (Java)

来源:互联网 发布:linux crm 命令 编辑:程序博客网 时间:2024/06/16 09:53

Given a list, rotate the list to the right by k places, where k is non-negative.

For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.

这题写的好丑,磕磕绊绊才过

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode rotateRight(ListNode head, int n) {if(head==null)return head;int num = 0;ListNode res = new ListNode(-1);res.next = head;while(head!=null){num++;head=head.next;}n%=num;n=num-n;if(n==0)return head;head = res.next;int i=1;while(i<n){head=head.next;i++;}ListNode pre = new ListNode(-1);pre.next = head.next;if(pre.next==null)return res.next;head.next=null;head=pre.next;while(head.next!=null)head=head.next;head.next=res.next;return pre.next;    }}


0 0
原创粉丝点击