LeetCode 206:反转链表 - 迭代法

175 阅读1分钟

反转一个单链表。

示例:

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

迭代解法

解题思路: 将单链表中的每个节点的后继指针指向它的前驱节点即可

画图实现: 画图帮助理解一下

img

确定边界条件: 当链表为 null 或链表中仅有一个节点时,不需要反转

代码:

var reverseList = function(head) {
    var cur = head,pre = null;
    if(!head||!head.next){return head;}
    while(cur){
        var temp = cur.next;
        cur.next = pre;
        pre = cur;
        cur = temp;
    }
    head = pre;
    return head;
};

转载自作者:user7746o 链接:leetcode-cn.com/problems/re… 来源:力扣(LeetCode)