对称二叉树
目录
对称二叉树
题目:
https://leetcode-cn.com/problems/symmetric-tree/
思路:
利用双向队列,每次把对称的两个对应的节点放入队列中,然后取出来比较,如果值不相等则返回false,如果一边为空 一边不为空也返回false 符合条件的话就继续搜索
代码:
# 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: TreeNode) -> bool:
from collections import deque
= deque()
d
d.append((root,root))while d:
= d.popleft()
left,right if not left and not right:
continue
elif not left or not right:
return False
elif left.val != right.val:
return False
else:
d.append((left.left,right.right))
d.append((left.right,right.left))return True