数据结构题目31:从双向循环链表中删除链结点
2020-05-01 本文已影响0人
玲儿珑
题目:从带有头结点的双向循环链表中删除第1个数据域内容为x的链结点
解题思路:
- 先从链表中找到数据内容为x的结点,由q指向
- 将q->rlink送q->llink->rlink,将q->llink送q->rlink->llink.
- 释放q
具体实现如下:
这里有用到createTwowayList(5)建立一个双链表
function deleteD(list, x){
let q
q = list.rlink
while ( q!=list && q.data!=x ) {
q = q.rlink
}
if (q==list) {
console.log("链表中无满足条件的结点!")
return -1
}
q.llink.rlink = q.rlink
q.rlink.llink = q.llink
q = null
return list
}
var twowayList = createTwowayList(5)
var r_list = deleteD(twowayList, 2)
console.log("操作后为:", toString(r_list))