响应掘金号召3.3.1|刷题打卡

93 阅读1分钟

一、题目描述:

二、思路分析:

这题就是递归

三、AC 代码:

/**
 * 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 zhuan(TreeNode* node){
        if(node == NULL)
        return ;
        TreeNode* tmp = node->left;
        node->left = node->right;
        node->right = tmp;
        zhuan(node->left);
        zhuan(node->right);
        return ;

    }
    TreeNode* invertTree(TreeNode* root) {
        zhuan(root);
        return root;
    }
};

四、总结:

这道题做法看起来就是个递归,但从顺序上讲也是个广度遍历,当然这个数据结构是树所以叫层次遍历,其实都是一个东西,我觉得dfs、bfs还是有可做的点的,如果需要的人多的话动态规划讲完就开坑讲讲这两个遍历方法。

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情