Open unliar opened 3 years ago
const node = { val: 'F', left: { val: 'B', left: { val: 'A' }, right: { val: 'D', left: { val: 'C' }, right: { val: 'E' } } }, right: { val: 'G', right: { val: 'I', left: { val: 'H' } } } }; // 简单遍历 const Travel = (node)=>{ if (!node) { return [] } const result=[] const src = [node] while (src.length>0) { const n = src.shift() // 删除第一位节点 result.push(n.val) // 推进结果列表 if (n.left) { src.push(n.left) } if (n.right) { src.push(n.right) } } return result } // 层序遍历 const levelOrder = function(root) { if(!root)return []; const queue =[root]; const res= []; let level = 0; // 判断同层数组 while(queue.length){ res[level]= []; let levelNum = queue.length; while(levelNum--){ const node = queue.shift(); res[level].push(node.val); node.left&&queue.push(node.left); node.right&&queue.push(node.right); } level++ }