MCPcopy
hub / github.com/HuberTRoy/leetCode / isSymmetric

Method isSymmetric

Tree/SymmetricTree.py:43–91  ·  view source on GitHub ↗

:type root: TreeNode :rtype: bool

(self, root)

Source from the content-addressed store, hash-verified

41
42class Solution(object):
43 def isSymmetric(self, root):
44 """
45 :type root: TreeNode
46 :rtype: bool
47 """
48 if not root:
49 return True
50
51 left = root.left
52 right = root.right
53
54 left_node = [left]
55 right_node = [right]
56
57 left_node_value = []
58
59 while left_node:
60 # if left_node:
61 _left = left_node.pop()
62 if _left:
63 left_node_value.append(_left.val)
64 else:
65 left_node_value.append(None)
66
67 if _left:
68 left_node.append(_left.right)
69 left_node.append(_left.left)
70
71 left_node_value.reverse()
72
73 while right_node:
74 _right = right_node.pop()
75
76 if left_node_value:
77 left_value = left_node_value.pop()
78 else:
79 return False
80
81 if _right:
82 if left_value != _right.val:
83 return False
84 else:
85 if left_value != None:
86 return False
87
88 if _right:
89 right_node.append(_right.left)
90 right_node.append(_right.right)
91 return True

Callers

nothing calls this directly

Calls 2

reverseMethod · 0.80
popMethod · 0.45

Tested by

no test coverage detected