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