二叉树的最大深度

37 阅读1分钟

package org.example.demo;  
  
import java.util.LinkedList;  
import java.util.Queue;  
  
//二叉树的最大深度  
public class TreeMaxDepthSolution {  
    public int maxDepth(TreeNode root){  
        if(root== null)return 0;  
        return Math.max(maxDepth(root.left),maxDepth(root.right))+1;  
    }  

    public int maxDepthTwo(TreeNode root){  
        if(root==null)return 0;  
        Queue<TreeNode> queue=new LinkedList<TreeNode>();  
        queue.offer(root);  
        int ans=0;  
        while (!queue.isEmpty()){  
            int size=queue.size();  
            while (size>0){  
                TreeNode node=queue.poll();  
                if(node.left!=null){  
                queue.offer(node.left);  
                }  
                if(node.right!=null){  
                queue.offer(node.right);  
                }  
                size--;  
            }  
            ans++;  
        }  
        return ans;  
    }  
}  
class TreeNode{  
    int val;  
    TreeNode left;  
    TreeNode right;  
    TreeNode(){}  
    TreeNode(int val){this.val=val;}  
    TreeNode(int val,TreeNode left,TreeNode right){  
        this.val=val;  
        this.left=left;  
        this.right=right;  
    }  
}