关闭

链表反转

92人阅读 评论(0) 收藏 举报
class list{ node head; int length; } class node{ String info; node next; } 一 先看用迭代(iterative)方式实现代码(JAVA): public void list_reverse() { node pos1, pos2, bufnode; pos1 = head; pos2 = null; while (pos1 != null) { bufnode = pos1; pos1 = pos1.next; bufnode.next = pos2; pos2 = bufnode; } head = pos2; //The final list's head is pos2. } 二 接下来是递归(recursion)代码,比较舒服。: public void list_reverse() { head = node_reverse(head); } private node node_reverse(node N) { if(N == null) { return null; } else{ node head = N; node tail = N.next; head.next = null; return node_concat(node_reverse(tail),head); } } private node node_concat(node N1,node N2) { if(N1 == null) { return N2; } else { N1.next = node_concat(N1.next,N2); return N1; } }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:167次
    • 积分:11
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行
    评论排行