首页 > 编程语言 >17天【代码随想录算法训练营34期】第六章 二叉树part04(● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和 )

17天【代码随想录算法训练营34期】第六章 二叉树part04(● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和 )

时间:2024-04-06 17:13:02浏览次数:12  
标签:right temp 17 self 随想录 二叉树 root left

110.平衡二叉树

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def getDepth(self, root):
        if root is None:
            return 0
        left = self.getDepth(root.left)
        right = self.getDepth(root.right)
        if left == -1 or right == -1 or abs(left - right) > 1:
            return -1
        else:
            return 1+max(left, right)
    def isBalanced(self, root: Optional[TreeNode]) -> bool:
        return self.getDepth(root) != -1

257. 二叉树的所有路径

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:
        result = []
        temp = ""
        self.findPath(root, temp, result)
        return result


    def findPath(self, root, temp, result):
        if root is None:
            return
        elif root.left is None and root.right is None:
            if temp:
                temp += "->"
            temp += str(root.val) 
            result.append(temp)
            temp = ""

        else:
            if temp:
                temp += "->"
            temp += str(root.val)

            self.findPath(root.left, temp, result)
            self.findPath(root.right, temp, result)

404.左叶子之和

标签:right,temp,17,self,随想录,二叉树,root,left
From: https://www.cnblogs.com/miramira/p/18117604

相关文章

  • 101. 对称二叉树
    兄弟们今天又来刷题了,题目:.-力扣(LeetCode)刚开始看到这个题其实就觉得和那个判断二叉树是否相等的题很相似,于是就照着那题的思路想,可是后来发现此题给的接口函数只有一个参数,没办法写,于是我们可以自己写一个接口函数来完成。思路:我们可以将这棵树看成把根节点删除的左右......
  • 二叉树-递归遍历
    深度优先遍历先往深走,遇到叶子结点再往回走,分为前序遍历,中序遍历和后序遍历。方法有递归法和迭代法。前中后序遍历,指的是中间节点的遍历顺序。前序遍历:5412678中左右中序遍历:1425768左中右后序遍历:1247865左右中深度优先遍历可利用递归法或者迭代法实......
  • 代码随想录算法训练营第二天 | 59.螺旋矩阵
    leetcode59.螺旋矩阵题目59.螺旋矩阵给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。解题思路构建一个n行n列的二维数组计算转几圈(注意n为奇数时,转圈结束后会剩余一个中心点)填充每圈的数值--最外层循环每圈按......
  • 16天【代码随想录算法训练营34期】第六章 二叉树part03(● 104.二叉树的最大深度 559
    104.二叉树的最大深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defmaxDepth(self,root:O......
  • 基于EP4CE6F17C8的FPGA可调校数码管时钟实例
    一、电路模块1、数码管开发板板载了6个数码管,全部为共阳型,原理图如下图所示,段码端引脚为DIG[0]~DIG[7]共8位(包含小数点),位选端引脚为SEL[0]~SEL[5]共6位。端口均为低电平有效。其实物图如下所示。数码管引脚分配见下表。2、时钟晶振开发板板载了一个50MHz的有源晶振,为系统......
  • PS1117-XX系列800 mA低噪声线性稳压器
    这份文件是关于PS1117-XX系列800mA低噪声线性稳压器的产品规格说明。以下是其核心内容的概要:产品特性(FEATURES)产品特性详细描述如下:1.**多种输出电压版本**:PS1117-XX系列线性稳压器提供了多种固定输出电压版本,包括1.5V、1.8V、2.5V、2.85V、3.3V、5V,以及可调版本,......
  • LC 226.翻转二叉树
    226.翻转二叉树给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]提示:树中节点数目范围在[0,100]内......
  • 代码随想录算法训练营DAY18|C++二叉树Part.5|513.找树左下角的值、112. 路径总和、113
    文章目录513.找树左下角的值层序-迭代遍历前中后序-递归遍历思路伪代码CPP代码112.路径总和、113.路径总和II112.路径总和思路伪代码实现CPP代码113.路径总和II思路伪代码实现CPP代码实现106\105.从中(前)序与后(中)序遍历序列构造二叉树106.从中序与后序遍历序列......
  • 17.C结构化程序 猜数字游戏
    ////猜数字游戏#include<stdio.h>#include<stdlib.h>#include<time.h>//产生一个0~RAND_MAX之间的伪随机数//intrand=rand();错误//rand()函数是标准库中的一个函数,用于生成一个伪随机数//而rand是一个变量名,当你使用intrand=...;时//你实际上是在尝试定义......
  • 数据结构 第五章(树和二叉树)【下】
    写在前面:本系列笔记主要以《数据结构(C语言版)》为参考(本章部分图片以及知识点整理来源于王道),结合下方视频教程对数据结构的相关知识点进行梳理。所有代码块使用的都是C语言,如有错误欢迎指出。视频链接:第01周a--前言_哔哩哔哩_bilibili哈夫曼树部分的代码参考了一位小伙伴分享的......