翻转链表
public class ReverseLink{
static class LNode{
int data;
LNode next;
public LNode(int data){
this.data = data;
}
}
LNode head;
LNode current;
public void add(int data){
if(head==null){
head = new LNode(data);
current = head;
}else{
current.next = new LNode(data);
current = current.next;
}
}
public void print(LNode node){
LNode temp = node;
while(temp!=null){
System.out.println(temp.data);
temp = temp.next;
}
}
public LNode reverse(LNode node){
if(node == null) return null;
LNode current = node;
LNode pre = null;
LNode next = null;
while(current!=null){
next = current.next;
current.next=pre;
pre=current;
current =next;
}
return pre;
}
public static void main(String[] args){
ReverseLink r = new ReverseLink();
for(int i=1;i<10;i++){
r.add(i);
}
r.print(r.head);
System.out.println("----------------");
LNode result = r.reverse(r.head);
r.print(result);
//链表为null
// LNode head = new LNode(5);
// LNode result = r.reverse(head);
// r.print(result);
}
}
这种情况下要考虑:输入参数为 null、输入参数中只有一个节点、输入正常的链表是否可以正常返回。

浙公网安备 33010602011771号