• xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!


    LeetCode & linked list

    数据结构 & 算法

    链表

    单链表
    双链表

    
    "use strict";
    
    /**
     *
     * @author xgqfrms
     * @license MIT
     * @copyright xgqfrms
     * @created 2020-11-17
     * @modified
     *
     * @description 链表
     * @difficulty Easy Medium Hard
     * @complexity O(n)
     * @augments
     * @example
     * @link
     * @solutions
     *
     * @best_solutions
     *
     */
    
    const log = console.log;
    
    // 节点
    function ListNode(val, next) {
      this.val = 0 || val;
      this.next = null || next;
    }
    
    // 链表
    function LinkedList(value) {
      const node = new ListNode(value, ``);
      if(!head) {
        head = node;
      } else {
        let current = head;
        while(current.next) {
          current = current.next;
        }
        current.next = node;
      }
    };
    
    
    
    // 链表
    function ListNode(val, next) {
      this.val = (val===undefined ? 0 : val)
      this.next = (next===undefined ? null : next)
    }
    
    const singlyLinkedList = [...new Uint8Array(5)].map((item, i) => new ListNode(i + 1, i < 4 ? i + 2 : null));
    
    

    reverse-linked-list

    链表反转

    https://leetcode.com/problems/reverse-linked-list/

    "use strict";
    
    /**
     *
     * @author xgqfrms
     * @license MIT
     * @copyright xgqfrms
     * @created 2020-08-017
     * @modified
     *
     * @description 206 reverse-linked-list
     * @description 206 反转链表
     * @difficulty Easy
     * @complexity O(n)
     * @augments
     * @example
     * @link
     * @solutions
     *
     */
    
    const log = console.log;
    
    /**
     * 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 prev = null;
      while (head) {
        // swap
        let temp = head.next;
        head.next = prev;
        prev = head;
        head = temp;
      }
      return prev;
    };
    
    /*
    
    [1,2,3,4,5]
    
    执行步骤
    
    p = null
    
    h = 1
    t = 2(h.n)
    h.n = null(p)
    // 1.n => null
    p = 1(h)
    h = 2t)
    
    h = 2
    t = 3(h.n)
    h.n = 1(p)
    // 2.n => 1
    p = 2(h)
    h = 3(t)
    
    
    */
    
    /*
    var reverseList = function(head) {
      let prev = null;
      let curr = head;
      while (curr) {
          let temp = curr.next;
          curr.next = prev;
          prev = curr;
          curr = temp;
      }
      return prev;
    };
    
    */
    
    

    refs

    https://leetcode.com/

    https://leetcode.com/tag/linked-list/

    https://leetcode.com/problemset/all/?topicSlugs=linked-list

    https://leetcode.com/problemset/top-100-liked-questions/


    Flag Counter

    ©xgqfrms 2012-2020

    www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


  • 相关阅读:
    Hibernate入门
    oracle数据库应用(2)
    oracle数据库应用
    Oracle数据库基础
    InitBinder 在Controller方法执行之前进行捕获请求,进行类型的转换
    Spring面试题
    Object处理方法的返回值
    使用jQuery快速高效制作网页交互特效
    struts2
    表分区
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/13516981.html
Copyright © 2020-2023  润新知