第一题中序遍历,遍历出来的二叉树是有序的,再找最小值即可。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def getMinimumDifference(self, root: TreeNode) -> int:
self.values = []
self.inOrderTravel(root)
self.answer = float('inf')
for i in range(len(self.values)-1):
self.answer = min(self.answer, abs(self.values[i] - self.values[i+1]))
return self.answer
def inOrderTravel(self, root):
if not root:
return
if root.left:
self.inOrderTravel(root.left)
self.values.append(root.val)
if root.right:
self.inOrderTravel(root.right)
第二题直接一直除三,看看能不能除进就好
class Solution:
def isPowerOfThree(self, n: int) -> bool:
while n >= 3:
if n % 3 != 0:
return False
n /= 3
return n == 1
网友评论