Advertisement
jinhuang1102

101. Symmetric Tree

Nov 13th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1.  
  2.  
  3. class Solution:
  4.     def SymCheck(self, ls):
  5.         start = 0
  6.         end = len(ls)-1
  7.         while start < end:
  8.             if ls[start] != ls[end]:
  9.                 return False
  10.             start += 1
  11.             end -= 1
  12.         return True
  13.        
  14.     def isSymmetric(self, root):
  15.         """
  16.        :type root: TreeNode
  17.        :rtype: bool
  18.        """
  19.         if not root:
  20.             return True
  21.        
  22.         temp = []
  23.         q = collections.deque()
  24.         q.append(root)
  25.         while q:
  26.             num = len(q)
  27.             for i in range(num):
  28.                 node = q.popleft()
  29.                 if node:
  30.                     temp.append(node.val)
  31.                     if node.left:
  32.                         q.append(node.left)
  33.                     else:
  34.                         q.append(None)
  35.                        
  36.                     if node.right:
  37.                         q.append(node.right)
  38.                     else:
  39.                         q.append(None)
  40.                 else:
  41.                     temp.append(node)
  42.                        
  43.             if not self.SymCheck(temp):
  44.                 return False
  45.             else:
  46.                 temp = []
  47.                
  48.         return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement