The adjacency matrix of a graph of n points is the square matrix of order n, in which the i, j element is one if and only if the ith point and the jth point are adjacent, or i = j; and is zero otherwise. Let A be the adjacency matrix of graph G considered as a boolean matrix so that 1 + 1 = 1. Then G2, the square of G, is the graph whose adjacency matrix is A2. We obtain a necessary and sufficient condition for a graph to be the square of a tree by providing an algorithm for determining a tree that is the square root of any graph known to be the square of some tree. This algorithm cannot be carried through when a graph is not the square of a tree. It is shown that, if a graph is the square of a tree, then it has a unique tree square root. The method utilizes a previous result for determining all the cliques in a given graph, where a clique is a maximal complete subgraph. This result was obtained while attempting the more general problem of characterizing boolean matrices having a square root, or, in general, an nth root.