题目描述:给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int val=0, ListNode next=null) {
* this.val = val;
* this.next = next;
* }
* }
*/
class Solution {
public ListNode ReverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode newHead = ReverseList(head.next);
head.next.next = head;
head.next = null;
return newHead;
}
}
特殊情况(即:链表只有一个结点或没有结点),返回head(单个结点或null)
一般情况(即:在遍历链表时),返回Newhead(即:部分反转好的链表)
错误代码:
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head.next.next!=null){
ReverseList(head.next);
}
else{
head.next.next = head;
head.next = null;
}
return head;
}
}