您的位置: 题酷首页 » 所有题目 » 二级链表展开


二级链表展开


0
0
1 答
501 看

有个二级单链表,其中每个元素都含有一个指向一个单链表的指针:

struct Node{
 int data;
 Node *next;//下一个元素
 Node *head;//另一个单链表
};
//注:都是无环的

写程序把这个二级链表展开称一级单链表:

//例如: "v" represent "head", ">" represent "next"
//
// 1>2>3>NULL
// v
// 4>5>6>NULL
// v
// 7>8>9>NULL
// v
// NULL
//
//展开以后是 1>2>3>4>5>6>7>8>9>NULL
作业题链表
2009/08/26 by 半瓶墨水 1个月前更新 更新记录

二级链表?实则为二叉树吧justforfan528, 2个月前
@justforfan528: 很像,但是不一样半瓶墨水, 2个月前
从数据结构的定义上看是一样的啊,有何不同?请详述。justforfan528, 2个月前
@justforfan528: 或者说,这是一种特殊的二叉树 - 太过特殊,用二叉树来描述不合适半瓶墨水, 2个月前


0

凑字数

int proc( Node * o ) {
  int total = 0;
  while ( o != NULL && ( o->next != NULL || o->head != NULL ) ) {
    if ( o->head != NULL ) {
      if ( o->next != NULL )
        o->next->head = o->head;
      else
        o->next = o->head;
      o->head = NULL;
    }
    o = o->next;
    total++;
  }
  return total;
}

250x

参与回答

 提示:如不是回答问题,请采用发表评论形式! (比如针对题目或者某个回复的意见、建议)

注册登录后再回答