二叉树的最大深度

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [3,9,20,null,null,15,7],

3

/
9 20
/
15 7
返回它的最大深度 3 。

作者:力扣 (LeetCode)
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/xnd69e/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

package leetCode;

import java.util.LinkedList;
import java.util.Queue;

public class shuceng {
	  public static void main(String[] args) {
		  //模拟数据
		  TreeNode left = new TreeNode(9);
		  TreeNode rl = new TreeNode(15);
		  TreeNode rr = new TreeNode(7);
		  TreeNode right = new TreeNode(20,rl,rr);
		  TreeNode root = new TreeNode(3,left,right);
	      int chenshu = maxDepth(root);
	      System.out.println(chenshu);
	}
	    public static int maxDepth(TreeNode root) {
	        if (root == null)return 0;
	        //利用队列的特性:先进先出
	        Queue<TreeNode> queue = new LinkedList<TreeNode>();
	        queue.offer(root);
	        //有多少层
	        int level = 0;
	        while(!queue.isEmpty()){
		        int size = queue.size();
	        	level++;
	        	while(size-- > 0){
		        	//取出队列的最前面节点
		        	TreeNode cur = queue.poll();
	        		if(cur.left!=null){
	        			queue.offer(cur.left);
	        		}
	        		if(cur.right!=null){
	        			queue.offer(cur.right);
	        		}
	        	}
	        }
	        return level;
	    }
}

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;
   }
}
posted @ 2022-07-29 18:37  网抑云黑胶SVIP用户  阅读(5)  评论(0编辑  收藏  举报