SICP - exercise 2.69 - generate a huffman tree from a set of ordered leaves
Instead of using (= (length leaves) 1) to measure the list, consider
just using (null? (cdr leaves)) instead, that way it's a constant
operation.

Otherwise, if you're not using destructive operations (to improve
adjoin-set), this looks as good as it can get.

Also make sure to have the correct indentation (if that wasn't caused by
pasting), e.g.:

(define (successive-merge leaves)
  (if (null? (cdr leaves))
      (car leaves)
      (successive-merge
       (adjoin-set
        (make-code-tree (car leaves)
                        (cadr leaves))
        (cddr leaves)))))


Also take a look at this post maybe, one of the posts regarding the same exercise.