You are given a binary tree where nodes have an additional pointer 'next'. This 'next' pointer is initially null. Design an algorithm to populate each next pointer to point to its right sibling. If there is no right sibling, the next pointer should remain null. Can this be done efficiently without using recursion?