let tree = { val:'a', left:{ val:'b', left:{ val:'d' }, right:{ val:'e' } }, right:{ val:'c', left:{ val:'f' }, right:{ val:'g' } } } function dfs(obj = tree,cb = console.log){ for(let k in obj){ if(obj[k] instanceof Object){ dfs(obj[k],cb) }else{ cb(obj[k]) } } } function bfs(obj = tree,cb = console.log){ let arr = [] arr.push(obj) while(arr.length){ let node = arr.shift() cb(node && node.val) node.left && arr.push(node.left) node.right && arr.push(node.right) } }
对dfs&bfs最浅显的理解及coding demo