1. Create an ArrayList to store the preordered list of elements and also a Stack for storing the tree's nodes. 2. If the root is null, return empty ArrayList. 3. Insert root into the Stack. 4. Run loop till the Stack becomes empty. 4. Within the loop, pop an element from the Stack and push its data to the ArrayList. 5. If the right child of the popped node is not null, then push it to the Stack. 5. If the left child of the popped node is not null, then push it to the Stack. 6. Outside the loop, return the ArrayList.