leetcode:Symmetric Tree【Python版】

#error caused by:
#1:{} 没有考虑None输入
#2:{1,2,2} 没有控制h和t
#3:{4,-57,-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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值