24.反转链表

面试题24. 反转链表

难度简单28收藏分享切换为英文关注反馈

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

【剑指offer】24.反转链表_编程题目
思路:链表的反转,通常需要定义一个前置节点 遍历链表中所有结点。

time:O(n)

space:O(1)

//思路 每次遍历 
    public ListNode reverseList(ListNode head) {
        if(head == null){
            return null;
        }
        ListNode cur = head,pre = null;
        while(cur!=null){
            ListNode next = cur.next;//设置当当前节点next 赋值到next上
            cur.next = pre;//cur.next = null
            pre = cur; //当前节点指向pre
            cur = next;//指向下一个节点
        }
        return pre;
    }