Tree 球拍:二叉树的最大高度

Tree 球拍:二叉树的最大高度,tree,height,binary-tree,racket,distance,Tree,Height,Binary Tree,Racket,Distance,我试图在racket中创建一个代码,在二叉搜索树中找到从根到叶的最大距离 我在C++中看到了这一点,但是我把它翻译成球拍有困难。 我已经设法计算了树中的所有节点,但还没有设法单独计算任何路径 有什么建议吗?我已经看到了模板和所有这些,但仍然没有设法使一个工作 这就是我到目前为止所尝试的 (define-struct node (left right)) (define (maxdepth tree) (cond [(null? tree) 0]

我试图在racket中创建一个代码,在二叉搜索树中找到从根到叶的最大距离

我在C++中看到了这一点,但是我把它翻译成球拍有困难。 我已经设法计算了树中的所有节点,但还没有设法单独计算任何路径

有什么建议吗?我已经看到了模板和所有这些,但仍然没有设法使一个工作

这就是我到目前为止所尝试的

 (define-struct node (left right))

 (define (maxdepth tree)
    (cond 
          [(null? tree) 0]
          [ (> (size (node-left tree)) (size (node-right tree)))
                   (maxdepth (node-left tree))]
[else (maxdepth (node-right tree))]))


  (define (size tree)
      (if (null? tree) 0
         (+ 1 (size (node-left tree)) (size (node-right tree)))))

我们只需要一个函数-
maxdepth
,只需找到每个子树的高度加上当前节点的高度:

(define (maxdepth tree)
  (cond 
    [(null? tree) 0]
    [else (+ 1 (max (maxdepth (node-left  tree))
                    (maxdepth (node-right tree))))]))

难道
maxdepth
size
不应该计算相同的值吗?在
size
中,向两个子树大小添加一个,而不是选择最大的。提示: