博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[二叉树专题] 求二叉树中的节点个数(递归和迭代两种解法)
阅读量:6293 次
发布时间:2019-06-22

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

hot3.png

/* 递归解法O(n)1. 如果二叉树为空,则节点个数为0;2. 如果二叉树不为空,则二叉树节点数 = 左子树节点个数 + 右子树节点个数+ 1*/public static int getNodeNumRec(TreeNode root){    if(root == null){//二叉树为null        return 0;    }else{//二叉树不为null        return getNodeNumRec(root.left)+getNodeNumRec(root.right) + 1;    }}/* 迭代解法 O(n)基本思想同 LevelOrderTraversal,即用一个Queue,在Java里面可以用LinkedList来模拟*/public static int getNodeNum(TreeNode root){    if(root == null){        return 0;    }    int count = 1;    Queue
 queue = new LinkedList
();    queue.add(root);        while(!queue.isEmpty()){        TreeNode cur = queue.remove();        if(cur.left != null){            queue.add(cur.left);            count++;        }        if(cur.right != null){            queue.add(cur.right);            count++;        }    }    return count;}

转载于:https://my.oschina.net/u/2477353/blog/662923

你可能感兴趣的文章
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>