首页 > 编程语言 >算法刷题 Day 14 | 二叉树的递归遍历

算法刷题 Day 14 | 二叉树的递归遍历

时间:2023-01-11 00:55:59浏览次数:76  
标签:遍历 TreeNode 14 E5% right 二叉树 E4% Day left

今日内容:

  • 理论基础
  • 递归遍历
  • 迭代遍历
  • 统一迭代

详细布置

理论基础

需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义

文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html

递归遍历

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

题目链接/文章讲解/视频讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html

Tips:这里以前序遍历的代码为例吧

我的题解:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void traversal(TreeNode* cur, vector<int>& vec){
        if(cur == NULL){
            return;
        }
        vec.push_back(cur->val);
        traversal(cur->left,vec);
        traversal(cur->right,vec);
    }
    vector<int> preorderTraversal(TreeNode* root) {
        vector<int> result;
        traversal(root, result);
        return result;
    }
};

迭代遍历

题目链接/文章讲解/视频讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%BF%AD%E4%BB%A3%E9%81%8D%E5%8E%86.html

Tips:

我的题解:

统一迭代

这是统一迭代法的写法, 如果学有余力,可以掌握一下

题目链接/文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E7%BB%9F%E4%B8%80%E8%BF%AD%E4%BB%A3%E6%B3%95.html

Tips:

我的题解:

标签:遍历,TreeNode,14,E5%,right,二叉树,E4%,Day,left
From: https://www.cnblogs.com/GavinGYM/p/17042643.html

相关文章

  • Educational Codeforces Round 141 (Rated for Div. 2)
    比赛链接;A核心思路:其实我们不要被迷惑了,这就是一个构造题。如果遇到构造题没有思路的话。可以联想经典的构造。也就是一大一小进行构造。然后检查是否可行。//Problem:......
  • mt_Day3:编程案例练习
    编程练习1.买机票publicclasstest1{publicstaticvoidmain(String[]args){//1.用户输入月份,票价,仓位类型System.out.println("请输入月......
  • mt_Day3:面向对象基础
    面向对象1.案例练习:购物车对象商品类publicclassgoods{intid;Stringname;doubleprice;intbuyNums;}购物车功能1.添加商品到购物车2.......
  • 重建二叉树
    题目描述思路分析在中序遍历列表中找到先序遍历列表中第一个节点,以此为界限可以将二叉树分为左右子树,可以得知左子树和右子树的长度,在先序遍历列表中划分出来。再依次拿......
  • Day11:数组基础知识
    packagecom.dfyfhqsgclxry.array;publicclassArrayDemo08{publicstaticvoidmain(String[]args){//1.创建一个二维数组11*11,0:没有棋子1:黑棋2:白棋int[......
  • 每日食词—day094
    parameterizev.参数化、参量化、用参数表示descriptorn.描述符号、描述符、描述器、描述子、描述元、描述信息块inspectionn.检查、视察、检视、审视、检测、......
  • 每日食词—day093
    splitv. n. adj.分裂、分割、切分、分隔、拆分assignmentn.赋值、分配、指派、指定convertv. n.转换、转化、转变、改变preservev. n.保护、保存、保持......
  • 二叉树
    1.二叉树的概念二叉树是n个有限元素的集合,该集合或为空、或由一个根节点及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为......
  • Linux day2:文件和文件夹相关命令 文件内容编辑命令 Linux常用目录 Linux重要文件
    目录问题说明前期必备知识系统运行命令shutdown-c快捷方式命令ctrl+e目录结构相关命令mkdir-p文件和文件夹相关命令创建文件touch查看文件和目录ls-al查看文件内......
  • Educational Codeforces Round 141 (Rated for Div. 2)(B,C,D)
    EducationalCodeforcesRound141(RatedforDiv.2)(B,C,D)BB这个题的大意是我们需要构造一个矩阵,我们需要这个矩阵的一个位置和它相邻位置的绝对值的不同数量最多我猜......