【发布时间】:2015-01-20 19:24:13
【问题描述】:
您好,我正在尝试将二叉树转移到列表中,但在后序中交叉。
(define (postorden arbol)
(if (null? arbol)
('()) (append (append (postorden (car (cdr arbol)))
(postorden (car (cddr arbol))))
(list (car arbol)))))
但我收到此错误:
cdr:违反合同 预期:对? 给定:'null
但是以这棵树为例:'((1 2) ((7 10) ((2 4) null null)) ((6 8) ((10 13) null null) null))
执行 cdr 并得到: (((7 10) ((2 4) null null)) ((6 8) ((10 13) null nul) null)) 然后我把车做成这样的结果:'((7 10) ((2 4) null null)) 如果它是一对的话。所以我不明白出了什么问题。
提前谢谢你。
【问题讨论】:
标签: functional-programming scheme binary-tree racket postorder