Rotate List 面试题

今天做了leetcode的Rotate List,刚开始头脑不清楚,写的乱七八糟的,后来改了下,提交了,能过,把代码贴出来。

做题的时候头脑要清楚,我刚开始做完的时候才发现我把向左向右移动弄反了,后来修改了下。

 public static ListNode rotateRight(ListNode head, int n) {
ListNode first=head;
ListNode second=head;
ListNode result=null;
ListNode t=null;
int ln=0;
if(head==null)
return result;
while(head.next!=null){
ln++;
head=head.next;
}
ln++;//求出list长度
n=n%ln;
n=ln-n;//求出向右移动距离
if(n==0)
return first; while(n>1){
if(first.next!=null)
first=first.next;
else
first=head;
n--;
}
t=first;
if(t.next==null)
return second;
else{
result=first.next;
t.next=null;
first=result;
}//将移动后的链表的尾巴确定
while(first.next!=null){
first=first.next;
}
first.next=second;//将链表头与尾连起来
return result;
}
上一篇:iOS开发——UI基础-UIImage,UIImageView的使用


下一篇:将undefault和null的数据转换成bool类型的数据 使用!!