leetcode:Symmetric Tree【Python版】
5605 ワード
#error caused by:#1:{}None入力#2:{1,2,2}制御hとt#3:{4,-57,#,67,67,#,#,,,,-97,-97}負の番号を考慮せず、sをstrからlistに変更し、9999で空の数値を表す.
---------------------
層ごとに対称性の検証を行い、非対称が現れたら終了する.
---------------------
層ごとに対称性の検証を行い、非対称が現れたら終了する.
1 # Definition for a binary tree node
2 # class TreeNode:
3 # def __init__(self, x):
4 # self.val = x
5 # self.left = None
6 # self.right = None
7
8 class Solution:
9 # @param root, a tree node
10 # @return a boolean
11 def isSymmetric(self,root):
12 ret = True
13 q = []
14 s = []
15 if root != None:# root
16 q.append(root)
17 s.append(root.val)
18 while (len(q) != 0 and ret == True):
19 h = 0
20 t = len(s) - 1
21 while (h < t):
22 if (s[h] != s[t]):
23 ret = False
24 break
25 h+=1# h t
26 t-=1
27 tq = q
28 s = []
29 q = []
30 while (len(tq) != 0 and ret == True):
31 t = tq.pop(0)#pop
32 if t.left != None:
33 q.append(t.left)
34 s.append(t.left.val)
35 else:
36 s.append(9999)
37 if t.right != None:
38 q.append(t.right)
39 s.append(t.right.val)
40 else:
41 s.append(9999)
42 return ret