version_10
使用递归将栈转置 ReverseStackRecursively
def getAndRemoveLat(stack):
res = stack.pop()
if len(stack) == 0:
return res
else:
last = getAndRemoveLast(stack)
stack.append(res)
return last
def reverseStack(stack):
if len(stack) == 0:
return None
i = getAndRemoveLat(stack)
reverseStack(stack)
stack.append(i)
version_11
判断一棵树是否对称 isSymmetrical
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def isSymmetrical(self, pRoot):
if not pRoot:
retuurn True
def Traversal(left, right):
if left is None and right is None:
return True
elif left and right and left.val == right.val:
return Traversal(left.left, right.right) and Traversal(left.right, right.left)
else:
return False
return Traversal(pRoot.left, pRoot.right)
层序遍历二叉树并且返回 print
def print(root):
ans = []
if root is None:
return ans
else:
q = [root]
while q:
node = q.pop(0)
ans.append(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
return ans