求二叉树的深度

xiaoxiao2021-02-28  145

剑指offer 二叉树深度

一、题目描述: 题目来源

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

二、题目分析:递归

如果该树只有一个结点,它的深度为1.如果根节点只有左子树没有右子树,那么树的深度为左子树的深度加1;同样,如果只有右子树没有左子树,那么树的深度为右子树的深度加1。如果既有左子树也有游资是,那该树的深度就是左子树和右子树的最大值加1. 这个思路用递归实现如下:

/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public int TreeDepth(TreeNode root) { if(root==null) return 0; int left=0; int right=0; if(root.left!=null){ left=TreeDepth(root.left); } if(root.right!=null){ right=TreeDepth(root.right); } return left>right?left+1:right+1; } }
转载请注明原文地址: https://www.6miu.com/read-42085.html

最新回复(0)