>>804
末端に入れるときは、適当に入れたいところまで辿って行って追加するだけでは?

struct node* root;
struct node* p;

p = root;
while (p->left != NULL) p = p->left;
p->left = new_node;

こっちが二分木関係の操作を全部書いてダブルポインタが必要ないことを証明するより、
そちらが、ポインタのポインタがないと困る二分木の操作の例を一例でも出したほうが話が簡単だと思うけど。