算法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 到数组 有好的想法 能够补充数据结构