0
我想列出一个显示二叉树的顺序遍历的列表。 这里是我的代码:显示二叉树的遍历
(define btree
'(1 (2 (4 (7 #f #f) #f) (5 #f #f)) (3 (6 (8 #f #f) (9 #f #f)) #f)))
(define res '())
(define (inorder tree)
(let loop ([t tree])
(cond (t (loop (cadr t)) (cons (car t) res) (loop (caddr t)))
(else res))))
(inorder btree '())
res
返回的列表是“(),我不知道为什么。 如果我写
(cond (t (loop (cadr t)) (printf "~s " (car t)) (loop (caddr t)))
它打印正确的结果。编辑:访问实际上是水库。