public void DFS(TreeNode root) {深度优先
        Stack<TreeNode> stack = new Stack<>();
        stack.add(root);
        while (!stack.isEmpty()) {
            // 移除最后一个
            TreeNode tempNode = stack.pop();
            System.out.println(tempNode.element);
            // 后进先出
            if (tempNode.right != null)
                stack.add(tempNode.right);
            if (tempNode.left != null)
                stack.add(tempNode.left);

        }
    }

 

 public void BFS(TreeNode root) {广度优先
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        // 先进先出
        while (!queue.isEmpty()) {
            TreeNode tempTreeNode = queue.remove();
            System.out.println(tempTreeNode.element);
            if (tempTreeNode.left != null)
                queue.add(tempTreeNode.left);
            if (tempTreeNode.right != null)
                queue.add(tempTreeNode.right);
        }
    }

 

相关文章:

  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
猜你喜欢
  • 2021-12-27
  • 2021-12-27
  • 2021-07-06
  • 2021-09-09
相关资源
相似解决方案