不用递归、只用循环的深度优先算法

function dfs(node) {
  let stack = [];
  stack.push(node);

  while(stack.length > 0) {
    let currNode = stack.pop();
    console.log(currNode.val); // 进行相应的操作

    if (currNode.children) {
      for(let i = currNode.children.length - 1; i >= 0; i--) {
        stack.push(currNode.children[i]);
      }
    }
  }
}
 

你可能感兴趣的:(算法)