0
点赞
收藏
分享

微信扫一扫

Leetcode刷题(第206题)——翻转链表

前行的跋涉者 2022-03-15 阅读 133

一、题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

二、示例
在这里插入图片描述

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
输入:head = [1,2]
输出:[2,1]

三、思路
本题我们可以使用两个指针,使用while循环,让p1指向当前节点,让p2指向下一个节点,不断改变节点的指向。
四、代码展示

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let p1 = head
    let p2 = null
    while(p1) {
        let temp = p1.next
        p1.next = p2
        p2 = p1
        p1 = temp
    }
    return p2
};

五、总结
在这里插入图片描述

举报

相关推荐

0 条评论