DraculaW

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  19 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks

// 給一個鏈表 list 將 list 倒置
// 有很多種做法
// 1 遞歸 (速度最慢)
// 2 用個棧 (速度慢)
// 3 三個指針遍歷 (大部分的做法)
//

// 具體就是一個 node*的數組 有三個元素
// 每次都將 a[1]的放入a[0] a[2]的放入a[1] a[2]->next放入a[2]
// 再將a[1]->next = a[0];
//

void resv_Linklist(Node* head)
{
    Node* a[3];
    a[0] = a[1] = NULL;
    a[2] = head;
    while(a[2]->next)
    {
        a[0] = a[1];
        a[1] = a[2];
        a[2] = a[2]->next;
        a[1]->next = a[0];
    }
    *head = *(a[2]);
}
posted on 2007-11-15 20:34 DraculaW 阅读(420) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理