[英]Maximum Depth of Binary Tree in scala
我正在使用Scala在leetcode上進行練習。 我正在研究的問題是“二叉樹的最大深度”,這意味着找到一棵二叉樹的最大深度。
我已經通過IntelliJ傳遞了代碼,但是在Leetcode中提交我的解決方案時,我一直遇到編譯錯誤(類型不匹配)。 這是我的代碼,請問有任何問題或其他解決方案嗎?
object Solution {
abstract class BinTree
case object EmptyTree extends BinTree
case class TreeNode(mid: Int, left: BinTree, right: BinTree) extends BinTree
def maxDepth(root: BinTree): Int = {
root match {
case EmptyTree => 0
case TreeNode(_, l, r) => Math.max(maxDepth(l), maxDepth(r)) + 1
}
}
}
錯誤在這里: Line 17: error: type mismatch; Line 24: error: type mismatch;
Line 17: error: type mismatch; Line 24: error: type mismatch;
我知道這很奇怪,因為我只有13行代碼,但是我沒有犯錯,相信我;)
這看起來像是針對leetcode問題的錯誤。 我假設您指的是https://leetcode.com/problems/maximum-depth-of-binary-tree/description/
也許您不應該重新實現數據結構,而只是提供maxDepth
的實現,即TreeNode
已經給出。 嘗試這個:
object Solution {
def maxDepth(root: TreeNode): Int = {
if (root == null) {
0
} else {
Math.max(maxDepth(root.left), maxDepth(root.right)) + 1
}
}
}
假定TreeNode
數據結構是注釋中給出的結構:
/**
* Definition for a binary tree node.
* class TreeNode(var _value: Int) {
* var value: Int = _value
* var left: TreeNode = null
* var right: TreeNode = null
* }
*/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.