The subject says "simple", but is not really a piece of cake for me

Please help me( I started learning LISP 5 days ago ).

- Code: Select all
`A`

/ \

B C

/ \

D E

A tree can be represented in two ways

(A 2 B 0 C 2 D 0 E 0) (1)

(A (B) (C (D) (E))) (2)

->Convert a tree of type (2) to type (1).

This is my function:

____________________________________________________

- Code: Select all
`(defun conv2to1(l)`

(cond

((atom (car l)) (cons (car l) (length (cdr l))))

(T (append (conv2to1(car l)) (conv2to1 (cdr l))))

)

)

___________________________________________________

I'm not sure where I'm wrong, but i think I'm very close to the result