思路:定义两个类,一个类Node用于生成链表节点;一个类LinkNodeList用于定义链表指针指向,最后生成链表
    代码:

    1. // javascript手写一个链表
    2. // 类:定义每个链表节点
    3. class Node{
    4. constructor(val){
    5. this.val = val
    6. this.next = null
    7. }
    8. }
    9. // 类:最后生成链表
    10. class LinkNodeList{
    11. constructor(){
    12. this.head = null
    13. this.length = 0
    14. }
    15. append(val){
    16. let node = new Node(val)
    17. let p = this.head
    18. if(this.head){ // 如果是头节点,找到最后一个节点,让最后一个节点.next = 当前节点
    19. while(p.next){
    20. p = p.next
    21. }
    22. p.next = node
    23. }else{
    24. this.head = node // 如果不是头节点,那么让这个节点成为头节点
    25. }
    26. this.length++
    27. }
    28. print(){ // 方法:将链表打印出来:1=>2=>3=>4;一般写成toString
    29. let p = this.head
    30. let ret = ''
    31. if(this.head){
    32. do{
    33. ret += (p.val + '=>')
    34. p = p.next
    35. }while(p.next)
    36. ret += p.val
    37. console.log(ret);
    38. }else{
    39. console.log('empty');
    40. }
    41. }
    42. }
    43. let linkList = new LinkNodeList()
    44. linkList.append(1)
    45. linkList.append(2)
    46. linkList.append(3)
    47. linkList.append(4)
    48. console.log(linkList.length)
    49. linkList.print()

    最后控制台打印出:
    截屏2022-02-26 下午8.58.38.png