We consider the problem of constructing optimal decision trees: given a collection of tests that can disambiguate between a set of m possible diseases, each test having a cost, and the a priori likelihood of any particular disease, what is a good adaptive strategy to perform these tests to minimize the expected cost to identify the disease? This problem has been studied in several works, with O(log m)‐approximations known in the special cases when either costs or probabilities are uniform. In this paper, we settle the approximability of the general problem by giving a tight O(log m)‐approximation algorithm. We also consider a substantial generalization, the adaptive traveling salesman problem. Given an underlying metric space, a random subset S of vertices is drawn from a known distribution, but S is initially unknown–we get information about whether any vertex is in S only when it is visited. What is a good adaptive strategy to visit all vertices in the random subset S while minimizing the expected distance traveled? This problem has applications in routing message ferries in ad hoc networks and also models switching costs between tests in the optimal decision tree problem. We give a polylogarithmic approximation algorithm for adaptive TSP, which is nearly best possible due to a connection to the well‐known group Steiner tree problem. Finally, we consider the related adaptive traveling repairman problem, where the goal is to compute an adaptive tour minimizing the expected sum of arrival times of vertices in the random subset S; we obtain a polylogarithmic approximation algorithm for this problem as well.