【面试算法】华为机试70题

394 阅读1分钟

〇、OJ练习

OJ在线编程常见输入输出练习

一、深度优先搜索DFS

104. 二叉树的最大深度

//bfs
class Solution { 
    public int maxDepth(TreeNode root) { 
        if(root == null)return 0; 
        int res = 0; 
        Queue<TreeNode> queue = new ArrayDeque<>();
        queue.add(root); 
        while(!queue.isEmpty()){
            int size = queue.size();
            for(int i = 0; i < size;i++){
                TreeNode node = queue.poll();
                if(node.left!=null)queue.add(node.left); 
                if(node.right!=null)queue.add(node.right);
            } 
            res++;
       }
       return res;
    }
}
//dfs
class Solution { 
    public int maxDepth(TreeNode root) {
        return root == null?0:Math.max(maxDepth(root.left),maxDepth(root.right)+1);

124. 二叉树中的最大路径和

129. 求根节点到叶节点数字之和

98. 验证二叉搜索树

110. 平衡二叉树

113. 路径总和 II

236. 二叉树的最近公共祖先

450. 删除二叉搜索树中的节点