一、501. 二叉搜索树中的众数
1.1、题目描述
1.2、题解
1.2.1、中序遍历 结果升序
class Solution:
def __init__(self
) -> None:
self
.pre
= -1
self
.count
= 0
self
.target
= [0, 0]
def findMode(self
, root
: TreeNode
) -> List
[int]:
if not root
:
return []
self
.inorderTraversal
(root
)
print(self
.target
, self
.pre
, self
.count
)
if self
.count
> self
.target
[0]:
self
.target
= [self
.count
, self
.pre
]
elif self
.count
== self
.target
[0]:
self
.target
.append
(self
.pre
)
return self
.target
[1:]
def inorderTraversal(self
, root
: TreeNode
) -> None:
if not root
:
return None
if root
.left
:
self
.inorderTraversal
(root
.left
)
if self
.pre
== -1:
self
.pre
= root
.val
self
.count
= 1
elif self
.pre
== root
.val
:
self
.count
+= 1
else:
if self
.count
> self
.target
[0]:
self
.target
= [self
.count
, self
.pre
]
elif self
.count
== self
.target
[0]:
self
.target
.append
(self
.pre
)
self
.pre
= root
.val
self
.count
= 1
if root
.right
:
self
.inorderTraversal
(root
.right
)
二、530. 二叉搜索树的最小绝对差
class Solution:
def __init__(self
) -> None:
self
.min = float('inf')
self
.pre
= -1
def getMinimumDifference(self
, root
: TreeNode
) -> int:
self
.inorderTraversal
(root
)
return self
.min
def inorderTraversal(self
, root
: TreeNode
) -> None:
if root
.left
:
self
.inorderTraversal
(root
.left
)
if self
.pre
!= -1:
self
.min = min(self
.min, abs(self
.pre
- root
.val
))
self
.pre
= root
.val
if root
.right
:
self
.inorderTraversal
(root
.right
)
转载请注明原文地址: https://mac.8miu.com/read-490548.html