lintcode 35.翻转链表

翻转一个单向链表

思路:如果链表为空或者只有1个元素,那么直接返回头结点;否则,用pre代表新的头结点,用next辅助记录下下一个将要访问的结点,来实现链表的翻转

class Solution {
    public ListNode reverse(ListNode head) {
        if(head==null||head.next==null)
        return head;
        ListNode pre=null;//首先pre为空,因为此时新链表还没有元素
        ListNode next=null;
        while(head!=null){
            next=head.next;//记录下将要处理的结点位置
            head.next=pre;//将当前结点插入到新链表头部
            pre=head;//更新新链表的头节点
            head=next;//指向下一个要处理的结点
        }
        return pre;//返回新链表的头结点
    }
}

猜你喜欢

转载自blog.csdn.net/thyzy120605/article/details/80723851