思路
聯想遞歸三部曲:傳入參數、遍歷方式、返回什么。本題聯想到先序遍歷的方式,需要遍歷整顆二叉樹,最后返回的是一個布爾值。然后我們需要傳入的是左子樹和左子樹的節點,然后分別進行比較。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:def compare(left,right):if left==None and right==None:return Trueelif left==None and right!=None:return Falseelif left!=None and right==None:return Falseelif left.val!=right.val:return FalseLeft=compare(left.left,right.right)#比較左子樹的左孩子和右子樹的右孩子Right=compare(left.right,right.left)#比較左子樹的右孩子與右子樹的左孩子return Left and Rightif not root:return Truereturn compare(root.left,root.right)