【题目】 分别实现反转单向链表的函数。 【要求】 如果链表长度为N,时间复杂度要求为O(N),额外空间 复杂度要求为O(1) 代码
package com.day1.practice;
public class ReverseList {
public static class Node{//单链表结点的实现
public int value;
public Node next;
public Node(int data) {
this.value = data;
}
}
public static Node reverseList(Node head) {//逆转单链表
Node pre=null;
Node next=null;
while (head!=null){
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
public static Node myReverseList(Node head) {//逆转单链表
Node pre=null;
Node curr=head;
Node next=null;
while (curr!=null){
next=curr.next;
curr.next=pre;
pre=curr;
curr=next;
}
return pre;
}