Functional logic languages with a sound and complete operational semantics are mainly based
on an inference rule called narrowing. Narrowing extends functional evaluation by goal solving
capabilities, as in logic programming. Due to the huge search space of simple narrowing,
steadily improved narrowing strategies have been developed in the past. Needed narrowing
is currently the best narrowing strategy for first-order functional logic programs due to its
optimality properties wrt the length of derivations and the number of computed solutions. In
this paper, we extend the needed narrowing strategy to higher-order functions and λ-terms
as data structures. By the use of definitional trees, our strategy computes only independent
solutions. Thus, it is the first calculus for higher-order functional logic programming which
provides for such an optimality result. Since we allow higher-order logical variables denoting
λ-terms, applications go beyond current functional and logic programming languages. We
show soundness and completeness of our strategy with respect to LNT reductions, a particular
form of higher-order reductions defined via definitional trees. A general completeness result
is only provided for terminating rewrite systems due to the lack of an overall theory of
higher-order reduction which is outside the scope of this paper.