Google interview question

Given a balanced binary tree, create 2 way pointer links between all siblings for each depth. Each node then has the fields left, right, previous and next. Then do the same thing given a non balanced binary tree.