王道课后习题4.3.16:将叶结点按从左到右的顺序连成单链表,表头指针为head,链接时用叶结点的右指针域存放单链表指针

TNode *head=NULL;
TNode *r=NULL;
TNode* inorder_L(TNode* p)
{
    if(p!=NULL)
    {
        inorder_L(p->lchild);
        if(p->lchild==NULL&&p->rchild==NULL)
        {
            if(r==NULL)
            {
                head=p;
                r=p;
            }
            else
            {
                r->rchild=p;
                r=p;
            }
        }
        inorder_L(p->rchild);
        r->rchild=NULL;
    }
    return head;
}

TNode* preorder_L(TNode* p)
{
    if(p==NULL)
        return NULL;
    if(p->lchild==NULL&&p->rchild==NULL)
    {
        if(r==NULL)
        {
            head=p;
            r=p;
        }
        else
        {
            r->rchild=p;
            r=p;
        }
    }
    preorder_L(p->lchild);
    preorder_L(p->rchild);
    r->rchild=NULL;
    return head;
}

你可能感兴趣的:(树)