C++ 之LeetCode刷题记录(十七)

开始cpp刷题之旅。

依旧是追求耗时0s的一天。

在这里插入图片描述

101. 对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:

输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:

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

这题目感觉还是比较简单的

解法: dfs

class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        return root==nullptr || dfs(root->left,root->right);
    }
private:
    bool dfs(TreeNode* leftTree, TreeNode*rightTree){
        if(leftTree == nullptr && rightTree== nullptr)  return true;
        if(leftTree == nullptr || rightTree == nullptr || leftTree->val!=rightTree->val) return false;
        return dfs(leftTree->left,rightTree->right) && dfs(leftTree->right,rightTree->left);
    }
};

先看根节点是否相同,再判断左右是否都为空,再判断左节点是否等于右节点,右节点是否等于左节点。

思路比较简单啊。

看一下提交记录

C++ 之LeetCode刷题记录(十七)_第1张图片

OK,perfect!

你可能感兴趣的:(数据结构,c++,c++,leetcode,深度优先)