思路:定义两个类,一个类Node用于生成链表节点;一个类LinkNodeList用于定义链表指针指向,最后生成链表
代码:
// javascript手写一个链表// 类:定义每个链表节点class Node{constructor(val){this.val = valthis.next = null}}// 类:最后生成链表class LinkNodeList{constructor(){this.head = nullthis.length = 0}append(val){let node = new Node(val)let p = this.headif(this.head){ // 如果是头节点,找到最后一个节点,让最后一个节点.next = 当前节点while(p.next){p = p.next}p.next = node}else{this.head = node // 如果不是头节点,那么让这个节点成为头节点}this.length++}print(){ // 方法:将链表打印出来:1=>2=>3=>4;一般写成toStringlet p = this.headlet ret = ''if(this.head){do{ret += (p.val + '=>')p = p.next}while(p.next)ret += p.valconsole.log(ret);}else{console.log('empty');}}}let linkList = new LinkNodeList()linkList.append(1)linkList.append(2)linkList.append(3)linkList.append(4)console.log(linkList.length)linkList.print()
最后控制台打印出:
