https://leetcode.com/problems/reverse-linked-list/#/description
思路解析:头插法
代码如下:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode reverseList(ListNode head) {
//头插法
ListNode r=new ListNode(0);
ListNode p=head;
while(head!=null)
{
p=head;
head=head.next;
p.next=r.next;
r.next=p;
}
return r.next;
}
}
=====================================`
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode reverseList(ListNode head) {
if(head==null || head.next==null) return head;
//递归实现单链表的转置
ListNode p=head.next;
ListNode r=reverseList(p);
p.next=head;
head.next=null;
return r;
}
}