JS-单向链表(removeAt,remove,isEmpty,size)

下面我们来封装一下js-单向蓝标中的removeAt,remove,isEmpty,size方法

// 7.removeAt方法-传入位置,返回删除的数据!

    LinkList.prototype.removeAt=(position)=>{

//    有的删除操作会将删除的数据返回,所以return current.data,如何不删除,正常的返回true就可以啦!

    //  1.越界判断

        if (position<0||position>=this.length)return null

    //  2.判断是否是删除的第一个节点

        let current=this.head

        if (position===0){

this.head=this.head.next

        }else{

let index=0

            let previous=null

            while (index++

previous=current;

                current=current.next

            }

//    将前一个节点的next指向,后一个节点的next

            previous.next=current.next;

        }

//    3.最后千万不要忘记了length—1

        this.length-=1

        return current.data

    }

//  8.remove方法-删除数据

    LinkList.prototype.remove=(data)=>{

//    1.获取data数据在链表中的位置

        let position=this.indexOf(data)

//  2.根据位置信息删除节点

        return this.removeAt(position)

}

//  9.isEmpty方法

    LinkList.prototype.isEmpty=()=> {

return this.length===0

    }

//    10.size方法

    LinkList.prototype.size=()=>{

return this.length

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。