创建单链表及倒序单链表

function Node(data){
    this.data = data;  //数据
    this.next = null;  //链接
}

function List(){
    this.head = new Node("head");  //创建一个头节点
    this.addFirst = addFirst;  //从头部插入一个节点,从而创建链表
    this.display = display;  //显示链表的数据
    this.listReverse = listReverse;   //倒序单链表
}

//从链表头部插入一个节点,newEle是新节点的数据
function addFirst(newEle){
    var newNode = new Node(newEle);
    //如果链表为空,则直接加在头节点后面
    if(this.head.next === null){
        this.head.next = newNode;
    }else{//如果链表不为空,则在头节点与第一个节点之间插入新节点
        var first = this.head.next;
        newNode.next = first;
        this.head.next = newNode;
    }
}

//倒序单链表,将原链表中的节点从头部开始一个个删除并加到新链表中,最后返回新链表
function listReverse(){
    var pHead = this.head;
    var pre = null;
    var next = null;
    while (pHead !== null) {
        next = pHead.next;
        pHead.next = pre;
        pre = pHead;
        pHead = next;
    }
    return pre;

}

//显示
function display(){
    var currNode = this.head;
    while(currNode.next !== null){
        console.log(currNode.next.data);
        currNode = currNode.next;
    }
}
wayofway all right reserved,powered by GitbookLast updated: 2021-02-24 09:22:33

results matching ""

    No results matching ""