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

阅读 133

2022-03-15

一、题目

给你单链表的头节点 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)

0 0 举报