博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的深度
阅读量:4187 次
发布时间:2019-05-26

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

1. 递归

public int TreeDepth(TreeNode root)	{		if (root == null) // 空树,高度为0			return 0;				int leftDepth = TreeDepth(root.left); // 左子树高度		int rightDepth = TreeDepth(root.right); // 右子树高度		// 树的最大高度为子树最大高度加上根结点		if (leftDepth > rightDepth)			return leftDepth + 1;		else			return rightDepth + 1;	}

2. 层次遍历

public int TreeDepth(TreeNode pRoot)	{		if (pRoot == null)		{			return 0;		}		Queue
queue = new LinkedList<>(); queue.add(pRoot); // 根结点如队列 int depth = 0, ncount = 0, nextCount = 1; // 队列不为空 while (queue.size() != 0) { TreeNode top = queue.poll(); // 出队列一个元素 ncount++; // 如果有左孩子,左孩子入队列 if (top.left != null) queue.add(top.left); // 如果有右孩子, 右孩子入队列 if (top.right != null) queue.add(top.right); // 表示遍历完了一层 if (ncount == nextCount) { nextCount = queue.size(); // 下一层的结点个数 ncount = 0; depth++; } } return depth; }
你可能感兴趣的文章
loadrunner中的事务
查看>>
客户协作 over 合同谈判
查看>>
敏捷团队建设
查看>>
敏捷需求分析
查看>>
Struts多模块的技巧
查看>>
OO的CSS尝试
查看>>
使用jMock辅助单元测试
查看>>
Generics Types 泛型学习笔记
查看>>
用PicoContainer和Nanning实现事务管理
查看>>
Generics Types 泛型学习笔记
查看>>
泛型(Generics Types)学习笔记
查看>>
介绍 IoC
查看>>
WEB报表至WORD,打印工具类库
查看>>
DOM4J 使用简介
查看>>
pureftpd安装配置简明说明
查看>>
项目中用到的2个工具类代码:FTP与SendMail
查看>>
敏捷究竟是什么?
查看>>
我们需要实践来建立过程
查看>>
人们不喜欢过程
查看>>
UML很棒但是过于庞大了
查看>>