数据结构题目18:销毁一个线性链表

题目:销毁一个线性链表.
解题思路:所谓销毁一个线性链表就是指将链表中所有链结点删除,并释放其占用的存储空间,使之成为一个空表。对于删除链表中的所有链结点,只需设置一个指针变量,先使其指向链表的第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)

你可能感兴趣的:(数据结构题目18:销毁一个线性链表)