题解 | #二叉树深度#

二叉树的深度

http://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b

非递归求解·

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
import java.util.*;
public class Solution {
    public int TreeDepth(TreeNode root) {
        LinkedList <TreeNode> list = new LinkedList<TreeNode>();
        if(root == null){
        return 0;
        }
        int level = 0;
        list.add(root);
        while(!list.isEmpty()){
          //记录当前层的节点个数
            int curSize = list.size();
            while(curSize>0){
                TreeNode curNode = list.poll();
                if(curNode.left!=null){
                    list.add(curNode.left);
                }
                if(curNode.right!=null){
                    list.add(curNode.right);
                }
                curSize--;
            }
            level++;
        }
        return level;
    }
}
全部评论

相关推荐

04-17 20:54
已编辑
湖南大学 Java
自我感觉答得不好,估计是挂了。但面试官人很好,氛围相对轻松。流程:常规自我介绍,20min项目,10min八股,30min算法,反问。项目:问了一些技术细节,以及改进方向。八股:1、http的默认端口号?(80)2、linux中查看进程监听端口号的命令?(不熟悉linux,答了个netstat&nbsp;-ntlp)3、UDP传输如何解决乱序问题?(没答上来,有个在包中添加序列号,但是忘记了)4、某个端口已经监听了UDP,是否能再监听TCP?(没答上来,答案是可以,面试官说这题很偏,不知道也正常)5、malloc分配的是栈内存还是堆内存?(堆)6、进程和线程的区别?(我答的进程是资源分配的最小单位,线程...
丰川打工祥:T8我觉得应该是:静态内部类是外部类的静态成员,独立于外部类的实例,而非静态内部类依赖于外部类的实例,可以访问外部类的所有成员。比如A是外部类,B是静态内部类,C是A的普通内部类。由于 B 是静态内部类,它属于外部类 A 的静态成员,因此可以直接通过 A.B 来创建静态内部类的实例,不需要先创建 A 的实例。而 C 是非静态内部类,它需要依赖外部类 A 的实例,因此必须先创建 A 的实例,然后才能通过这个实例来创建 C 的对象。所以,不能直接用 A.C 来创建 C 的实例。
腾讯一面1768人在聊 查看14道真题和解析
点赞 评论 收藏
分享
永不遗忘:才这么点算什么拉黑,我初筛连着挂几十次了,最后还是能进面
点赞 评论 收藏
分享
03-27 17:33
门头沟学院 Java
代码飞升:同学院本,你要注意hr当天有没有回复过,早上投,还要打招呼要推销自己,不要一个劲投
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务