这是一道 「简单」
https://leetcode.cn/problems/symmetric-tree/

题目

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

示例 1:


/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */

func isSymmetric(root *TreeNode) bool {
    if root == nil {
        return true
    }
    return isSymmetric2(root.Left, root.Right)
}

func isSymmetric2(left *TreeNode, right *TreeNode) bool {
    if left == nil && right == nil {
        return true
    }else if left == nil || right == nil {
        return false
    }

    return left.Val == right.Val && isSymmetric2(left.Right, right.Left) && isSymmetric2(left.Left, right.Right)
}

复杂度分析

  • 时间复杂度N 为二叉树中的节点个数。每个节点都需要计算一次,总计是 N 次。
  • 空间复杂度。空间复杂度取决于调用栈的深度,最差为 N


- End -



本篇文章来源于微信公众号: i余数



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2023-06-19