算法: 对称二叉树

tech2022-08-23  139

题目: 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

1 / \ 2 2 / \ / \ 3 4 4 3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

1 / \ 2 2 \ \ 3 3

思路:就是以根节点为中心点,左右对称。 那我们可以递归对比,最左边的点和最右边的点 val 相同。 代码一看就明白了,如下

class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: def isSymmetric(self, root: TreeNode) -> bool: res = self.check(root,root) print(res) return res def check(self,leftnode,rightnode): if leftnode!=None and rightnode!=None: if (leftnode.val==rightnode.val) and self.check(leftnode.left,rightnode.right) and self.check(leftnode.right,rightnode.left): return 1 else: return 0 else: if leftnode == rightnode: return 1 else: return 0
最新回复(0)