二叉树的高度

本文算法使用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

猜你喜欢

转载自www.cnblogs.com/lliuye/p/9209955.html
今日推荐