当前位置: 首页 > article >正文

代码随想录 -- 二叉树 -- 二叉树的递归遍历

Python 中二叉树节点的定义方法

# Definition for a binary tree node.
class TreeNode(object):
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

前序遍历

144. 二叉树的前序遍历 - 力扣(LeetCode)

class Solution(object):
    def traversal(self,node,arr=[]):
        if node==None:
            return
        arr.append(node.val)
        self.traversal(node.left,arr)
        self.traversal(node.right,arr)


    def preorderTraversal(self, root):
        res=[]
        self.traversal(root,res)
        return res

中序遍历

94. 二叉树的中序遍历 - 力扣(LeetCode)

class Solution(object):
    def traversal(self,node,arr):
        if node==None:
            return
        self.traversal(node.left,arr)
        arr.append(node.val)
        self.traversal(node.right,arr)

    def inorderTraversal(self, root):
        res=[]
        self.traversal(root,res)
        return res

后序遍历

145. 二叉树的后序遍历 - 力扣(LeetCode)

class Solution(object):
    def traversal(self,node,arr):
        if node==None:
            return
        self.traversal(node.left,arr)
        self.traversal(node.right,arr)
        arr.append(node.val)

    def postorderTraversal(self, root):
        res=[]
        self.traversal(root,res)
        return res
        

知识点

递归函数的三要素

确定递归函数的参数和返回值、确定终止条件、确定单层递归的逻辑


http://www.kler.cn/news/289848.html

相关文章:

  • 13、Django Admin创建两个独立的管理站点
  • 【C++ Primer Plus习题】10.1
  • php邮箱服务器怎么搭建?如何构建服务器?
  • 【重学MySQL】四、关系型数据库设计规则
  • 在react中要将页面跳转有动画
  • 139. 单词拆分
  • 在线音乐播放器项目
  • Kafka【五】Buffer Cache (缓冲区缓存)、Page Cache (页缓存)和零拷贝技术
  • 五、Selenium操作指南(二)
  • 第二证券:涨停潮!传手机将使用钛金属外壳?
  • JVM(Java虚拟机)
  • 深入探索JNI:基础、最佳实践、性能优化与安全策略
  • Mental-LLM——通过在线文本数据利用大型语言模型进行心理健康预测
  • 【高级编程】实用类详解(中)String类及其常用方法 含判断邮箱格式案例
  • springboot使用缓存
  • Java实现加密(六)国密SM2算法
  • 【Qt】QChart折线图
  • ROS 编程入门
  • 集成电路学习:什么是IP知识产权
  • 本地搭建 Whisper 语音识别模型实现实时语音识别研究
  • 单线程Redis:Redis为什么这么快
  • 【html】编辑器、基础、属性、标题、段落、格式化、 连接、头部、CSS、图像
  • 微服务日常总结
  • 【主机入侵检测】Wazuh解码器之JSON解码器
  • 24并发设计模式——线程池模式
  • 台球助教系统小程序源码开发与技术解析
  • LLM大模型学习:LoRA 大模型微调的利器
  • 第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)
  • 在SpringMVC中用fmt标签实现国际化/多语言
  • 装饰器模式(Decorator Pattern)