zoukankan      html  css  js  c++  java
  • 刷题-力扣-94. 二叉树的中序遍历

    94. 二叉树的中序遍历

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

    给定一个二叉树的根节点 root ,返回它的 中序 遍历。

    示例 1:

    输入:root = [1,null,2,3]
    输出:[1,3,2]
    

    示例 2:

    输入:root = []
    输出:[]
    

    示例 3:

    输入:root = [1]
    输出:[1]
    

    示例 4:

    输入:root = [1,2]
    输出:[2,1]
    

    示例 5:

    输入:root = [1,null,2]
    输出:[1,2]
    

    提示:

    • 树中节点数目在范围 [0, 100] 内
    • -100 <= Node.val <= 100

    进阶: 递归算法很简单,你可以通过迭代算法完成吗?

    题目分析

    1. 根据题目描述中序遍历二叉树
    2. 递归算法,现遍历左子树再遍历根结点后遍历右子树

    代码

    /**
     * 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:
        vector<int> inorderTraversal(TreeNode* root) {
            vector<int> nodeList;
            ldr(root, nodeList);
            return nodeList;
        }
    
        void ldr(TreeNode* root, vector<int>& nodeList) {
            if (!root) return;
            ldr(root->left, nodeList);
            nodeList.push_back(root->val);
            ldr(root->right, nodeList);
        }
    
    };
    
  • 相关阅读:
    腾信短信接口实例
    ajax
    jquery
    生命鸡汤
    sql中事物
    ajax,一般处理程序,登陆
    CSS选择器大全
    【JavaScript】轮播图
    【DOM练习】淘宝购物车
    【DOM练习】百度历史搜索栏
  • 原文地址:https://www.cnblogs.com/HanYG/p/14804454.html
Copyright © 2011-2022 走看看