二叉树的高度

本文算法使用python3实现


1. 问题

  求解二叉树的高度。


2 思路描述

  方法一:利用层次遍历来求解二叉树的高度。(如果懂如何进行BFS就容易明白此种方法)
  方法二:利用递归求二叉树高度。


3 程序代码:

(1)方法一

class Solution:
	def TreeDepth(self, root):
		if root == None:
			return
		queue = []
		depth = 0
		queue.append(root)

		while queue:
			# childs保存每一层节点
			childs = []
			for node in queue:
				if node.left:
					childs.append(node.left)
				if node.right:
					childs.append(node.right)
			queue = childs
			depth += 1
		return depth

(2)方法二

class Solution:
	def TreeDepth(self, root):
		if not root:
			return 0
		left = self.TreeDepth(root.left)
		right = self.TreeDepth(root.right)
		return max(left, right) + 1

posted @ 2018-06-21 17:01  EEEEEcho  阅读(4542)  评论(0编辑  收藏  举报