题目描述
1 | Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). |
即检查一个二叉树是否围绕其中心对称。
解题思路
另外写一个函数 flipAndCheck()
,对于两个非空且值相等的根,递归判断该根的两个子根是否与另一根的子根的翻转相等。再在主函数里再调用这个函数。解法如下所示:
1 | # Definition for a binary tree node. |
感觉不好直观地理解,可以将下面这个二叉树进行验证,但也挺绕的orz:
- 首先是判断
flipAndCheck(l_2,r_2)
- 再判断
flipAndCheck(l_2.left=3, r_2.right=3)
andflipAndCheck(l_2.right=4, r_2.left=4)
- 再判断
flipAndCheck(l_2_3.left=5, r_2_3.right=5)
andflipAndCheck(l_2_3.right=6, r_2_3.left=6)
andflipAndCheck(l_2_4.left=6, r_2_4.right=6)
andflipAndCheck(l_2_4.right=5, r_2_4.left=5)
1 | 1 |