נראה לי
שהכי פשוט לפתור את זה ברקורסיה. כלומר: אם קיים תת עץ שמאלי, קרא לפונקציה ברקורסיה על תת העץ השמאלי. אם קיים תת עץ ימני, קרא לפונקציה ברקורסיה על תת העץ הימני. כעת אתה יכול להקצות מערך בגודל מתאים (גודל המערך מהקריאה הראשונה ועוד גודל המערך מהקריאה השניה ועוד 1), להעתיק את המערך מהקריאה הראשונה, להוסיף את תוכן השורש למערך ולהעתיק את המערך מהקריאה השניה, ולשחרר את שני המערכים.