通过将每个结点所包含的信息取出来,通过unshif方法存储到数组里面

然后在创建一个变量headNode,并且将数组首位元素赋值给它,同时将headNode赋值给另外一个变量flag来保存当前的头指针信息

遍历数组的所有信息,以headNode作为指针,将所有结点信息连接起来,最后将头结点flag返回即可

    // write code here
    if(!head) {
        return null
    }
    let arr = [];
    let flag = head;
    let headNode = head;
    let newNode = new ListNode()
    //抽出数据
    while(flag) {
        arr.unshift(flag)
        flag = flag.next
    }
    flag = head
    headNode = arr[0]
    flag = headNode
    //重置链表
    for(let i=1;i<arr.length;i++) {
        newNode=arr[i]
        headNode.next = newNode
        headNode = headNode.next
    }
    headNode.next = null
    return flag
}