-
题目描述
说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例: 输入: 1 / \ 2 3 / \ / 4 5 6 输出: 6 -
分析:二叉树的左右子树都是二叉树,故二叉树的相关问题一般基于分而治之的思路来求解,即大问题拆为多个子问题来求解。在实现层面,分而治之一般结合递归来实现,递归需要包含一个退出条件,而退出条件一般是基于最简单的情况来设计。针对这个完全二叉树的节点个数求解问题,最简单的情况是根节点都不存在,则节点个数为0,其次是只有根节点,则节点个数为1,然后是递归求解左右子树,具体实现如下:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int countNodes(TreeNode root) { if (root==null) { return 0; } if (root.left==null && root.right==null) { return 1; } return countNodes(root.left)+countNodes(root.right)+1; } }
本文标题:leetcode 222. 完全二叉树的节点个数
本文链接:https://blog.quwenai.cn/post/3265.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。






还没有评论,来说两句吧...