链表
-头结点:其实就是一个不存在任何数据的空节点,通常作为链表的第一个节点,对于
链表来说,头节点不是必须的,他的左眼只是为了方便解决一些问题而存在的
-第一个包含数据的节点
-链表的结束代表节点的next等于null
function LinkNode(value,next){
this.value=value;
this.next=next|null;
}
function arrayTolink(array){
let nodes=[];
for(const item of array){
nodes.push(new LinkNode(item))
}
for (let index = 0; index < nodes.length-1; index++) {
nodes[index].next= nodes[index+1];
}
return nodes[0];
}
function creatLinkList(arr){
//链表节点的最后一个元素它的next指针刚好是null
let node = new LinkNode(arr[arr.length-1])
if(arr.length===1)return node;
for (let index = arr.length-2; index > 0; index--) {
node = new LinkNode(arr[index],node)
}
return node;
}
function createLinkList2(arr){
//定义一个头节点
let head=new LinkNode(0);
let tmp =head;
for(const item of arr){
let node =new LinkNode(item);
tmp.next =node;
tmp=node;
}
return head.next;
}
function printNode(linkNode){
let tmp =linkNode;
while(tmp){
console.log("link Node Data:"+tmp.value);
tmp=tmp.next;
}
}
let array=[100,200,300,400,500,600]
let firstNode =arrayTolink(array);
printNode(firstNode);