题目
描述
翻转一个链表
样例
给出一个链表1->2->3->null
,这个翻转后的链表为3->2->1->null
解答
思路
递归。从尾部反转。
代码
/**
* Definition for ListNode.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int val) {
* this.val = val;
* this.next = null;
* }
* }
*/
public class Solution {
/**
* @param head: The head of linked list.
* @return: The new head of reversed linked list.
*/
public ListNode reverse(ListNode head) {
// write your code here
//如果头指针为null或者只有头指针,直接返回
if(head == null || head.next == null){
return head;
}
ListNode reNode = reverse(head.next);
head.next.next = head;
head.next = null;
return reNode;
}
}