广度优先遍历的链表代码
来源:8-9 广度优先遍历一个DOM树
![](http://img1.sycdn.imooc.com/user/5e5723af0001e57a03550338-100-100.jpg)
丫比比鸭
2023-04-12
关于链表的广度优先遍历代码,本地测试没有问题
interface iLinkNode{
curNode:Node | null,
nextNode:iLinkNode | null
}
function breadthFirstTraverse2(root:Node){
const queueHead:iLinkNode = {//哨兵节点
curNode:null,
nextNode:null
}
let queueEnd:iLinkNode = {//尾指针,先指向root
curNode:root,
nextNode:null
}
queueHead.nextNode = queueEnd
while(queueHead.nextNode !== null){
const nowNode = queueHead.nextNode.curNode
if(nowNode == null) break
visitNode(nowNode)
const childNodes = nowNode.childNodes
if(childNodes.length){
childNodes.forEach(child =>{
let n:iLinkNode = {
curNode:child,
nextNode:null
}
queueEnd.nextNode = n
queueEnd = n
})
}
queueHead.nextNode = queueHead.nextNode.nextNode//头节点出队
}
}
写回答
1回答
-
双越
2023-04-16
能通过单元测试即可~
PS:最近一周外出,没法带电脑,问题没有及时解答,非常抱歉。后面我会继续及时解答课程问题的。
00
相似问题