PasteRack.org
Paste # 787
2022-12-05 09:20:51

Fork as a new paste.

Paste viewed 1101 times.


Embed:

Test

  1. #lang racket
  2. (define (construct-tree preorder postorder)
  3.   (let ((len (length preorder)))
  4.     (if (= len 0)
  5.         '()
  6.         (let* ((root (car preorder))
  7.                (left-preorder (sublist preorder 1 (- len 2)))
  8.                (right-preorder (sublist preorder (- len 1) len))
  9.                (left-postorder (sublist postorder 0 (- len 2)))
  10.                (right-postorder (sublist postorder (- len 2) (- len 1))))
  11.           (list root (construct-tree left-preorder left-postorder)
  12.                       (construct-tree right-preorder right-postorder))))))

=>