广度优先遍历的链表代码

来源:8-9 广度优先遍历一个DOM树

丫比比鸭

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:最近一周外出,没法带电脑,问题没有及时解答,非常抱歉。后面我会继续及时解答课程问题的。

0
0

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1512 学习 · 642 问题

查看课程