A simple iterative algorithm is presented for balancing an arbitrary binary search tree in linear time. An efficient parallel algorithm is developed from the iterative algorithm using shared memory model. The number of processors used is equal to N, the number of nodes in the tree. The proposed algorithm has time complexity of O(1).