博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求二叉树第K层节点的个数
阅读量:6603 次
发布时间:2019-06-24

本文共 1288 字,大约阅读时间需要 4 分钟。

题目:求二叉树第k层节点的个数:

思路:

1. 递归:求根为root的二叉树第k层节点的个数,就是要求  root.left第k-1层节点的个数+  root.right第k-1层节点的个数

public static int getNumberOfKLevel(TreeNode root,int k){        if(root == null || k <1)            return 0;        if(k == 1)            return 1;        int numLeft = getNumberOfKLevel(root.left,k-1);        int numRight = getNumberOfKLevel(root.right,k-1);        return numLeft+numRight;    }

2.迭代:利用队列,相当于求二叉树的高度,只是求到哪一层的高度而已

public static int getNumberOfLevelK(TreeNode root,int k){        if(root == null || k <1)            return 0;        if(k == 1)            return 1;        Queue
queue = new LinkedList
(); int num = 1; int currentLevelNum = 0; queue.add(root); while(k >1){ while(num > 0){ TreeNode node = queue.remove(); if(node.left != null){ queue.add(node.left); currentLevelNum++; } if(node.right != null){ queue.add(node.right); currentLevelNum++; } num --; } num = currentLevelNum; k--; } return queue.size(); }

 

转载于:https://www.cnblogs.com/lfdingye/p/7364093.html

你可能感兴趣的文章
【DM642】ICELL Interface—Cells as Algorithm Containers
查看>>
linux所有命令失效的解决办法
查看>>
力扣算法题—085最大矩阵
查看>>
svs 在创建的时候 上传文件夹 bin obj 这些不要提交
查看>>
mysql-用命令导出、导入表结构或数据
查看>>
Tinkphp
查看>>
EntityFrameworkCore 一对一 && 一对多 && 多对多配置
查看>>
How to temporally disable IDE tools (load manually)
查看>>
Vue.js学习 Item4 -- 数据双向绑定
查看>>
几种排序方式的java实现(01:插入排序,冒泡排序,选择排序,快速排序)
查看>>
server application unavailable
查看>>
浅谈尾递归的优化方式
查看>>
eclipse 的小技巧
查看>>
频率域滤波
查看>>
图片存储类型的种类、特点、区别
查看>>
GETTING UP AND RUNNING WITH NODE.JS, EXPRESS, JADE, AND MONGODB
查看>>
求二叉树第K层节点的个数
查看>>
关于cocos2d-x面试的问题
查看>>
MySQLs数据库建外键时自动跑到缩影处,真奇怪
查看>>
static关键字
查看>>