给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3] 输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3] 输出:false
使用pip install binarytree 可以使用内置的函数is_symmetric()判断是否是对称函数。当然我也写了一段代码进行判断
class Solution:
def __init__(self, root):
self.root = root
def is_symmetric2(self):
if self.root is None:
return True
return self.check(self.root.left, self.root.right)
def check(self, left, right):
if left is None and right is None:
return True
if left is None or right is None:
return False
if left.val != right.val:
return False
return self.check(left.left, right.right) and self.check(left.right, right.left)
对称二叉树的判定条件是: 左子树的左孩子 == 右子树的右孩子 and 左子树的右孩子 == 右子树的左孩子
对于递归的终止条件:
当两个节点都为空,进入下一循环;
左右两个节点一个为空,一个不为空,一定不对称返回False;
左右两个节点都不为空,值不相等,一定不对称返回False.