题目:销毁一个线性链表.
解题思路:所谓销毁一个线性链表就是指将链表中所有链结点删除,并释放其占用的存储空间,使之成为一个空表。对于删除链表中的所有链结点,只需设置一个指针变量,先使其指向链表的第1个链结点,然后反复地通过执行赋值语句p=p->link来遍历整个链表,在此过程中删除并释放链结点。
具体算法实现如下:
这里我们会用到toString(list))来打印一个线性链表出来。
这里我们会用到createLinklist(n)来建立一个线性链表出来
function deleteList(list) {
let p = list
while ( p!=null ) {
list = p.link
p = null
p = list
}
return list
}
var list = createLinklist(10)
console.log('创建的list为:', toString(list))
var r_list = deleteList(list)
console.log('删除item后的链表为:', toString(r_list))
性能:
时间复杂度为O(n)
网友评论