摘要: 这个也是面试中经常遇到的问题了。反转单链表有两种方法可以解决,递归形式和非递归形式(非递归形式意思就是用循环哦)。在我看来,循环形式比起递归形式来,更有效率并且需要更少的内存。(比如反转一个有一百万结点的链表,递归形式肯定没戏,至少栈溢出。。。)。递归形式的唯一有点嘛,就是代码行数少点而已,并且别看行数少,写对写好确很难!换句话说,循环形式需要些更多的代码,但是也很好实现和验证。先来看循环形式:void reverse(Node*& head) {if (!head) return;Node* prev = NULL;Node* curr = head;while (curr) {No 阅读全文
posted @ 2013-06-26 17:29 老刘++ 阅读(915) 评论(1) 推荐(0) 编辑