簡體   English   中英

Scala中二叉樹的最大深度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM