首页 > 其他 > 详细

剑指 Offer 24. 反转链表

时间:2021-03-09 22:22:55      阅读:23      评论:0      收藏:0      [点我收藏+]

技术分享图片

思路:

  设置三个指针,cur 指向当前节点, pre 指向上一节点,tmp 指向下一节点。

  一开始 cur 指向头节点,pre 与 tmp 置null(可以将其视作循环链表,则 pre 为头节点的上一节点)

  遍历链表时,cur 移向下一节点,cur.next 指向上一节点 pre,实现链表反转。

代码:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode cur = head;
        ListNode pre = null;
        ListNode tmp = null;
        while (cur != null) {
            tmp = cur.next;//tmp指向下一个节点
            cur.next = pre;//cur.next指向pre,即指向前一节点
            pre = cur;//pre 暂存当前节点
            cur = tmp;//cur 移至下一节点
        }
        return pre;//当cur移至下一节点且cur == null时,pre为链表尾结点
    }
}

剑指 Offer 24. 反转链表

原文:https://www.cnblogs.com/zccfrancis/p/14507490.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!