• 剑指offer 二叉树的深度


    剑指offer 牛客网 二叉树的深度

    # -*- coding: utf-8 -*-
    """
    Created on Wed Apr 10 09:29:36 2019
    
    @author: Administrator
    题目:
    输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)
    形成树的一条路径,最长路径的长度为树的深度。
    思路:采用递归的思路,遍历到子节点,再返回,返回期间计数值加1,再递归
    """
    
    # -*- coding:utf-8 -*-
    class TreeNode:
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
    class Solution:
        def TreeDepth(self, pRoot):
            # write code here
            if not pRoot:                       #如果空节点就返回0
                return 0
                                                #若为叶子节点就返回1
            if pRoot and not pRoot.left and not pRoot.right:    
                return 1
            left = self.TreeDepth(pRoot.left)   #开始遍历左子树
            left += 1                           #遍历后计数加1
            right = self.TreeDepth(pRoot.right) #开始遍历右子树
            right += 1                          #遍历后计数加1
            return max(left,right)              #最终返回其最大的值
            
    if __name__ == '__main__':
        solution = Solution()
        
        #1 2 3 4 5 6 7 8
        node = TreeNode(8)
        node_left = TreeNode(1)
        node_right = TreeNode(3)
        node_left.left = node
        root_left = TreeNode(2)
        root_left.left = node_left
        root_left.right = node_right
        
        node_left = TreeNode(5)
        node_right = TreeNode(7)
        root_right = TreeNode(6)
        root = TreeNode(4)
        root.left = root_left
        root_right.left = node_left
        root_right.right = node_right
        root.right = root_right
        
        depth = solution.TreeDepth(root)
        print('depth: ',depth)  #depth:  4
  • 相关阅读:
    HDU 2757 Ocean Currents
    HDU 2704 Bulletin Board
    HDU 2234 无题I
    HDU 3638 Go , SuSu
    HDU 1199 Color the Ball
    HDU 1430 魔板
    PL/SQL例外的介绍
    表分区介绍
    移动表空间数据文件
    long\lob\bfile类型介绍
  • 原文地址:https://www.cnblogs.com/missidiot/p/10681510.html
Copyright © 2020-2023  润新知