题目描述
输入一个链表,反转链表后,输出链表的所有元素。
思路:构造一个虚头结点,用尾插法依次将结点插入。最后返回虚头结点的下一个结点。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
//头结点为空
if(head==null)return null;
ListNode p =head.next;
//只有一个结点
if(p==null)return head;
//构造一个头结点
ListNode v = new ListNode(-1);
while(head!=null){
ListNode temp =head;
head=head.next;
temp.next=v.next;
v.next = temp;
if(p.next!=null)p=p.next;
}
return v.next;
}
}