js 算法2

算法1
看一个算法题目 node

输入一个链表,从尾到头打印链表每一个节点的值。算法

这个题目我本地调试了一下 分享一下 又好的能够补充
链表我就很少说了 单链表 双链表 循环链表 看个图吧数组


今天就这个题目说下 就不对数据结构链表展开了

  • 利用数组
    我看到这个题目时候第一想法是数组 搞多了这种反转的 数组是第一个想到的来看下解法bash

    function CreateNode(value) {  
          this.value = value
          this.next = null
      }      //搞了一个链表
      CreateNode.prototype.setNext = function(node) {
          this.next = node
          return node
      }
       CreateNode.prototype.reverse = function() {
          var arr = []   //这里目的是把链表的value push到数组 
          var data = this
          while(data) {
              arr.push(data.value)    //这里能够直接arr.unshift(data.value)
              data = data.next
          }
          return arr
      }
    
      var one = new CreateNode(1)  //CreateNode {value: 1, next: null}
      var two = new CreateNode(2) 
      var three = new CreateNode(3)
      one.setNext(two).setNext(three)         // CreateNode {value: 1, next: CreateNode}    这里已经搞了一个链表
    
      console.log(one.reverse().reverse()) // [3,2,1]复制代码

    上面是首先想到的解法 将单链表的节点值push 到数组 有好的想法 能够补充数据结构

相关文章
相关标签/搜索