LeetCode练题六:dfs与bfs

(1)定义树这种数据结构

javascript 复制代码
// 先定义数据结构
const root = {
    val: 1
    children: {
        {
            val:2
            children: {
                {
                    val:4
                },
                {
                    val:5
                }
            }   
        },
        {
            val:3
            children: {
                {
                    val:6
                },
                {
                    val:7
                }
            }
        }
    }
}

(2)dfs深度优先遍历:就是一直让

javascript 复制代码
const dfs = (root) => {
    console.log(root.val)
    root.children.forEach(dfs)
}

(3)bfs广度优先遍历:就是不断出队,然后把自己的孩子放进去

javascript 复制代码
const bfs = (root) => {
    const q = [root]
    while(q.length > 0) {
        const n = q.shift()
        console.log(n)
        n.children.forEach(n => {
            q.push(n)
        })
    }
}
相关推荐
旖-旎1 小时前
《LeetCode 64 最小路径和 || LeetCode 174 地下城游戏》
c++·算法·leetcode·动态规划
凯瑟琳.奥古斯特2 小时前
力扣1009补码解法C++实现
开发语言·c++·算法·leetcode·职场和发展
山峰哥6 小时前
数据库工程:Explain执行计划对比实战指南‌
数据库·sql·oracle·深度优先·宽度优先
凯瑟琳.奥古斯特7 小时前
力扣1008:前序重建BST
开发语言·c++·算法·leetcode·职场和发展
aqiu1111118 小时前
【算法日记 13】LeetCode 49. 字母异位词分组:哈希表的进阶“降维打击”
算法·leetcode·散列表
人道领域10 小时前
【LeetCode刷题日记】贪心算法理论与实战:455.分发饼干最优解
java·开发语言·数据结构·算法·leetcode·贪心算法
旖-旎1 天前
《LeetCode 746 使用最小花费爬楼梯 || LeetCode 91 解码方法》
c++·算法·leetcode·动态规划
wabs6661 天前
关于动态规划【力扣1035.不相交的线和53.最大子数组和的思考】
算法·leetcode·动态规划
退休倒计时1 天前
【每日一题】LeetCode 199. 二叉树的右视图 TypeScript
算法·leetcode·typescript
硕风和炜1 天前
【LeetCode: 1301. 最大得分的路径数目 + DP】
java·算法·leetcode·动态规划·dp·记忆化搜索