zoukankan      html  css  js  c++  java
  • 树的练习

     使用dfs(深度优先)

     使用递归的平衡因子的方法:9(0,0);15(0,0);7(0,0);20(1,1);3(1,2);很显然还需要+1,才可以实现树的深度记录。

    class Solution:
        def maxDepth(self, root: TreeNode) -> int:
            if not root:
                return 0
            leftnode=self.maxDepth(root.left)
            rightnode=self.maxDepth(root.right)
            return max(leftnode,rightnode)+1
     
    非递归的方式:
    class Solution:
        def maxDepth(self, root: TreeNode) -> int:
            if root == None:
                return 0
            stack = [(root,1)]
            while stack:
                (node,level) = stack.pop(0)
                if node.left:
                    stack.append((node.left,level+1))
                if node.right:
                    stack.append((node.right,level+1))
                    
            return level
     
    使用bfs(广度优先)
    class Solution:
        def maxDepth(self, root: TreeNode) -> int:
            if not root: return 0
            queue, res = [root], 0
            while queue:
                tmp = []
                for node in queue:
                    if node.left: tmp.append(node.left)
                    if node.right: tmp.append(node.right)
                queue = tmp
                res += 1
            return res
     
  • 相关阅读:
    JavaScript中的的面向对象中的一些知识
    JavaScript中的Function
    jq 表格全选案例
    jq 美女相册案例
    jq 属性操作
    jq tab图片切换
    jq class操作
    jq css操作
    jquery 淘宝案例
    jquery 鼠标点击下滑案例
  • 原文地址:https://www.cnblogs.com/topass123/p/12756276.html
Copyright © 2011-2022 走看看