首页 > 其他分享 >Day14 | 二叉树递归遍历

Day14 | 二叉树递归遍历

时间:2024-06-05 18:44:20浏览次数:30  
标签:遍历 val res self Day14 right 二叉树 root left

递归遍历 (必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单

题目链接/文章讲解/视频讲解:https://programmercarl.com/二叉树的递归遍历.html
注意前 中 后指的是根节点在前、中、后次序进行遍历。

前序遍历

# 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
# 中 左 右
def Traversal(root,res):
    if root is None:
        return 0
    res.append(root.val)
    Traversal(root.left,res)
    Traversal(root.right,res)
class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        Traversal(root,res)
        return res

中序遍历

# 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
# 左 中 右 
def inorder(root,res):
    if root is None:
        return 0
    inorder(root.left,res)
    res.append(root.val)
    inorder(root.right,res)
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        inorder(root,res)
        return res

后序遍历

# 左 右 中
def Traversal(root,res):
    if root is None:
        return 0
    Traversal(root.left,res)
    Traversal(root.right,res)
    res.append(root.val)
class Solution:
    def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        Traversal(root,res)
        return res 

标签:遍历,val,res,self,Day14,right,二叉树,root,left
From: https://www.cnblogs.com/forrestr/p/18233586

相关文章

  • (第26天)【leetcode题解】226、翻转二叉树 589、N叉树的前序遍历 590、N叉树的后序遍
    目录226、翻转二叉树题目描述思路代码589、N叉树的前序遍历题目描述思路代码590、N叉树的后序遍历题目描述思路代码思考总结226、翻转二叉树题目描述给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,......
  • 数据结构复习笔记5.3:线索二叉树
    1.前言        在n个结点的⼆叉链表中,必定有n+1个空链域。⽽遍历运算是最重要的,也是最常⽤的运算⽅法,之前的⽆论是递归与非递归的算法实现遍历效率其实都不算⾼。        现有⼀棵结点数⽬为n的⼆叉树,采⽤⼆叉链表的形式存储。对于每个结点均有指向左右孩⼦......
  • 二叉树遍历 和 线索二叉树
    文章目录1.1二叉树遍历1.1前提问题1:什么叫二叉树的遍历?二叉树的三种遍历:三个概念:遍历和访问和经过重要概念:遍历过程中的经过节点,不代表访问节点问题2:遍历和访问的联系?问题3:这个有顺序的编号的意义是什么?问题4:什么是访问?如何对节点进行访问?1.2二叉树遍历代码:二......
  • C++U7-07-图的遍历进阶
    学习目标 引例 深搜遍历     [【图的遍历进阶】有向图中的可达]【算法分析】从a点广搜,并用vis数组标记从a能够到达的点,如果visb​=true,则表示能够到达,否则反之。【参考代码】#include<bits/stdc++.h>usingnamespacestd;constintm......
  • 代码随想录算法训练营day14(二叉树)
    代码随想录算法训练营day14(二叉树):学习内容:今天学习二叉树。二叉树节点标准写法(当前节点值,左右子节点,有点像链表节点的定义):structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}};二......
  • (第25天)【leetcode题解】二叉树的层序遍历
    目录429、N叉树的层序遍历题目描述思路代码515、在每个树行中找最大值题目描述思路代码116、填充每个节点的下一个右侧节点指针题目描述思路代码117、填充每个节点的下一个右侧节点指针II题目描述思路代码104、二叉树的最大深度题目描述思路代码111、二叉树的最小深......
  • CTFHUB-信息泄露-目录遍历和PHPINFO
    目录目录遍历PHPINFO目录遍历很简单,挨着把每个目录都点开看一下发现2目录下有个flag.txt文件,点开发现了本关的flagPHPINFO这关也很简单,进来之后是一个phpinfo页面,按CTRL+F键打开查询,输入flag,查找到了本关的flag ......
  • 二维数组的旋转遍历:顺时针、逆时针和对角线旋转
    在面试中,常常会遇到数组的各类旋转问题,例如以顺时针、逆时针或对角线的方式遍历二维数组。这类问题并不涉及算法,只是逻辑有点复杂,一个不小心就会导致访问越界,考验的是编程的基本功。如何优雅地解决此类问题呢?1.顺时针旋转[LeetCode54.螺旋矩阵]给你一个m行n列的矩阵 ma......
  • 101. 对称二叉树
    简单 相关标签相关企业 给你一个二叉树的根节点 root ,检查它是否轴对称。 示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false 提示:树中节点数目在范围 [1,1000] 内-100<=Node.val<=100 进阶:......
  • 代码随想录算法训练营第二十天 | 654.最大二叉树 617.合并二叉树 二叉搜索树
    654.最大二叉树题目链接文章讲解视频讲解classSolution{public:TreeNode*constructMaximumBinaryTree(vector<int>&nums){returninorderTraversal(nums,0,nums.size()-1);}TreeNode*inorderTraversal(vector<int>&nums,intbegi......