首页 > 其他分享 >闯关leetcode——94. Binary Tree Inorder Traversal

闯关leetcode——94. Binary Tree Inorder Traversal

时间:2024-10-14 18:18:03浏览次数:3  
标签:Binary 遍历 inorderTraversal Tree Example 访问 result root 94

大纲

题目

地址

https://leetcode.com/problems/binary-tree-inorder-traversal/description/

内容

Given the root of a binary tree, return the inorder traversal of its nodes’ values.

Example 1:

Input: root = [1,null,2,3]
Output: [1,3,2]
Explanation:

在这里插入图片描述

Example 2:

Input: root = [1,2,3,4,5,null,8,null,null,6,7,9]
Output: [4,2,6,5,7,1,3,9,8]
Explanation:

在这里插入图片描述

Example 3:

Input: root = []
Output: []

Example 4:

Input: root = [1]
Output: [1]

Constraints:

  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

Follow up: Recursive solution is trivial, could you do it iteratively?

解题

这题就是二叉树的中序遍历。
二叉树的遍历分成三种,按照根节点的访问先后分为:
先序遍历(先根遍历):先访问根节点,然后访问左子树, 最后访问右子树。
中序遍历(中根遍历):先访问左子树,然后访问根节点, 最后访问右子树。
后序遍历(后根遍历):先访问左子树,然后访问右子树, 最后访问根节点。

代码和逻辑一样,没什么好讲的。

class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> result;
        inorderTraversal(root, result);
        return result;
    }

private:
    void inorderTraversal(TreeNode* root, vector<int>& result) {
        if (root == nullptr) return;
        inorderTraversal(root->left, result);
        result.push_back(root->val);
        inorderTraversal(root->right, result);   
    }

};

在这里插入图片描述

代码地址

https://github.com/f304646673/leetcode/tree/main/94-Binary-Tree-Inorder-Traversal

标签:Binary,遍历,inorderTraversal,Tree,Example,访问,result,root,94
From: https://blog.csdn.net/breaksoftware/article/details/142109158

相关文章

  • 闯关leetcode——100. Same Tree
    大纲题目地址内容解题代码地址题目地址https://leetcode.com/problems/same-tree/description/内容Giventherootsoftwobinarytreespandq,writeafunctiontocheckiftheyarethesameornot.Twobinarytreesareconsideredthesameifthey......
  • BinaryTree
    二叉树树的基本概念树是一种非线性的数据结构n(n>0)个有限节点组成一个具有层次关系的集合像一颗倒挂的树根朝上叶朝下这里重要的是树中的几个概念结点的度:一个结点含有子树的个数比如上面的图A的度为6树的度:一颗树中,所有结点度的最大值成为树的度如上图......
  • Java中的Iterator接口,以及HashSet和TreeSet
    在Java编程中,`Iterator`接口是一个非常重要的概念,它为我们提供了一种统一且方便的方式来遍历集合(如`List`、`Set`、`Map`等数据结构中的元素,不过遍历`Map`时稍显特殊,通常是遍历其键值对的集合视图)。##一、Iterator接口的定义与方法`Iterator`接口位于`java.util`包中,它定义......
  • 浅谈 K-D Tree 及其进阶应用
    前言\(\text{K-DTree(K-DimensionTree)}\)是一种可以有效处理高维信息的数据结构。在一般信息学竞赛题目中\(k=2\),此时它又称\(\text{2-DTree}\)。但遗憾的是,\(k\ge3\)的情况并不常见,这个我们后面再说明原因。算法描述问题首先从简单的情况考虑起,假设信息只有一......
  • 【分治】线段树 SegmentTree
    算法描述线段树是一种能够处理区间修改和区间查询的数据结构。顾名思义,线段树就是一种存储着线段数据的树形结构。它的每个节点都表示一个线段区间,每个节点的孩子节点存储的就是该区间的左半段和右半段。每个线段区间都存储着一个值,一般是区间和,也有可能是区间最大/最小值。......
  • 【FPGA】AD9694调试注意事项
    一、介绍AD9694是一款四通道、14位、500MSPS模数转换器(ADC)。该器件内置片内缓冲器和采样保持电路,专门针对低功耗、小尺寸和易用性而设计。该器件设计用于高达1.4GHz的宽带模拟信号采样。AD9694针对宽输入带宽、高采样速率、出色的线性度和小封装低功耗而优化。由于AD9......
  • P9021 [USACO23JAN] Subtree Activation P
    P9021[USACO23JAN]SubtreeActivationP这种看上去就很不常规的东西不用想着怎么构造最佳方案,这条路一定是行不通的,考虑转化题意。考虑变化的实质只有两种:全\(0\)状态和\(x\)子树全满的状态转化;\(x\)子树全满和\(y\)子树全满的状态转化,其中\(x,y\)有边。这样的状态转......
  • P9466 [EGOI2023] Bikes vs Cars / 骑车与汽车
    题意给定\(B,C\)两个矩阵,你需要构造一张两权图\(G=(V,E=\{(u,v,w_1,w_2)\})\)使得从\(i\)到\(j\)之间:可以只经过\(w_1\geB_{i,j}\)的边连通可以只经过\(w_2\geC_{i,j}\)的边连通不能只经过\(w_1>B_{i,j}\)的边连通不能只经过\(w_2>C_{i,j}\)的边连通构......
  • Codeforces Round 946 (Div. 3)
    E.MoneyBuysHappiness题意:给你\(m\)个月,每个月可以赚\(x\)元,每个月你都有一次机会花费\(c_i\)元,获得\(h_i\)的幸福。(当然你目前得有足够的钱)。求出能够获得的最大幸福值。思路:我们可以求出获得\(i\)幸福值所需的最小花费,然后判断能否有足够的钱即可。考虑如何求解,把......
  • [ABC222H] Beautiful Binary Tree 题解
    第一次写拉格朗日反演。思路考虑如何操作。发现出根节点外有\(n-1\)个点是一。由于我们只能操作\(n-1\)次,相当于每一次操作必须把两个一合并。一个点最多往上跳两层,所以要求它的父亲或者爷爷是一。考虑设\(f_i\)表示当前节点为一并且整个子树总和为\(i\)的方案数,\(g......