一.题目
定义一个函数,反转链表后,输出链表的所有元素。
二.分析
需要注意以下三种问题:
(1)输入的链表头为指针为null,或者整个链表只有一个结点时,程序奔溃
(2)反转后的链表出现断裂
(3)返回的反转之后的头结点不是原始链表的尾结点。
三.代码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public ListNode ReverseList(ListNode head){
if(head == null || head.next == null){
return head;
}
ListNode preNode = null;
ListNode nowNode = head;
ListNode nextNode = null;
while(nowHead != null){
nextNode = nowHead.next;
nowNode.next = preNode;
preNode = nowNode;
nowNode = nextNode;
}
return preNode;
}