示例#1
0
  static <T> TailCall<LinkedList<T>> reverse(LinkedList<T> sourceList, LinkedList<T> reverseList) {
    if (null == sourceList) {
      return TailCall.done(reverseList);
    }

    return TailCall.scheduleRecursion(
        () -> {
          return reverse(sourceList.tail(), reverseList.insert(sourceList.head()));
        });
  }