美文网首页
链表 js版

链表 js版

作者: 两朵小黑云 | 来源:发表于2020-08-05 10:56 被阅读0次

    1.链表是什么?

    • 多个元素组成的列表
    • 元素存储不连续,用next指针连在一起 68a8761509af2104cec3759e1005743.png

    2.整这么麻烦干嘛,链表毛线用?

    • 数组vs链表
    • 数组: 增删非首尾元素时往往需要移动元素
    • 链表: 增删非首尾元素,不需要移动元素,只需要更改next的指向即可。
      LeetCode#237 删除链表中的节点
    var deleteNode = function(node) {
        node.val = node.next.val; //复制节点
        node.next = node.next.next; //将node节点指向下下个节点
    };
    那么发生了什么?
    4 -> 1 -> 3 -> 5
    假设删除1
    先复制节点  4 -> 3 -> 3 -> 5
    然后3指向5 变相删除
    4 -> 3 -> 5
    

    LeetCode#206 反转链表
    题目:

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

    var reverseList = function(head) {
        let p1 = head;
        let p2 = null;
        while(p1){
            const tmp = p1.next;
            p1.next = p2;
            p2 = p1;
            p1 = tmp;
        }
        return p2;
    };
    那么咋回事?
    双指针循环链表
    你让前面的指向后面的,然后在向前推,你能懂我意思么^_^
    

    先发布,未完结

    相关文章

      网友评论

          本文标题:链表 js版

          本文链接:https://www.haomeiwen.com/subject/qrkqrktx.html