题目描述
输入一个链表,反转链表后,输出新链表的表头。
思想:先建立一个新链表node,一个辅助指针temp,一个记录当前位置的指针cur。
遍历head链表,先使用辅助指针temp记录下一个位置,再将cur的下一个节点指向新链表的最前端,
然后将cur连接到新链表上,cur后移,返回node.next。
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode node=new ListNode(0);
ListNode temp=null;
ListNode cur=head;
while(cur!=null){
temp=cur.next;
cur.next=node.next;
node.next=cur;
cur=temp;
}
return node.next;
}
}
排坑:以为head是头结点,不包含在链表内,所以cur=head.next,但是实际上这里的head是链表的第一个值。