【链表】力扣206反转链表

发布时间:2024年01月10日

题目

力扣206反转链表

思路图解

双指针法思路图解

代码实现

双指针代码实现

public static ListNode reverseList(ListNode head) {
	// 初始化pre,cur
	ListNode pre = null;
	ListNode cur = head;
	// 当cur为null时,说明反转结束
	while(cur != null) {
        // 临时保存cur.next节点的值
        ListNode temp = cur.next;
        // cur的next指向pre
        cur.next = pre;
        // 注意这两步步骤不能错
        pre = cur;
        cur = temp;
    }
	return pre;
}

递归方法

参考双指针法,动脑具体想一下,我把代码写出,看是否一样。
建议首先掌握双指针写法,递归写法是在双指针写法基础上而来。

public static ListNode reverseListDiGui(ListNode cur, ListNode pre) {
    if (cur == null) {
        return pre;
    }
    ListNode temp = cur.next;
    cur.next = pre;
    return reverseListDiGui(temp, cur);
}
文章来源:https://blog.csdn.net/weixin_44078354/article/details/135410640
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。