反转单链表
思路:当链表为空head==null 或长度为1时,直接返回head。定义pre和cur两个节点分别指向null和head节点。然后开始从head节点依次修改指针。先利用tmp节点暂存当前节点的下一个节点,再将当前节点指向它的前一个节点pre,然后再将pre节点和当前节点cur往后移一位,再修改下一个节点的指针。
ublic ListNode ReverseList (ListNode head) {
if(head == null || head.next == null){//判断链表长度为1或者为空
return head;
}
ListNode pre=null;
ListNode cur=head;
ListNode tem=null;//记录当前结点的下一个结点
while(cur!=null){
tem=cur.next;
cur.next=pre;
pre=cur;
cur=tem;
}
return pre;
}