JavaScript算法系列之-----------------链表反转(JS实现)

题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

 

之前一直对JS实现链表理解不了,被算法大牛指点了一下豁然开朗。

function ListNode(x){
    this.val = x;
    this.next = null;
}

在JS中,this.val代表当前节点的值,this.next指向下一个节点,若this.next为null(对象),则说明该节点为链表的最后一个节点。

PS:把下一个节点赋值给当前对象的next属性,通过这样的方式连接。

通过代码:

var reverseList = function(head) {
    let prev = null;
    let curr = head;
    while (curr !== null) {
        let cnext = curr.next;
        curr.next = prev === null ? null : prev
        prev = curr;
        curr = cnext;
    }
    return prev
};

 

posted @ 2019-02-16 20:23  灭世的蜜糖  阅读(6102)  评论(3编辑  收藏  举报