左程云著算法与数据结构题目最优解笔记-反转单双链表
2016-09-04 15:14
453 查看
反转单双链表
链表长度为n,时间复杂度为O(n),空间复杂度为O(1).反转单链表
代码块
public class Node { public int val; public Node next; public Node (int val){ this.val=val; } } public Node reverseList(Node head){ Node pre=null; Node next=null; while(head!=null){ //反转第一个节点 next=head.next;//记录下一个节点 head.next=pre;//反转当前节点 pre=head;//记录当前节点为下一个节点的pre head=next;//移动到下一个节点 } return pre;//返回新头节点 }
反转双链表
代码块
public class DoubleNode { public int val; public DoubleNode pre; public DoubleNode next; public DoubleNode (int val){ this.val=val; } } public Node reverseList(Node head){ DoubleNode pre=null; DoubleNode next=null; while(head!=null){ //反转第一个节点 next=head.next;//记录下一个节点 head.next=pre;//反转当前节点:next指针指向上一个节点 head.pre=next;//反转当前节点:pre指针指向下一个节点 pre=head;//记录当前节点为下一个节点的pre head=next;//移动到下一个节点 } return pre;//返回新头节点 }
相关文章推荐
- [C/C++]反转链表
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#数据结构之顺序表(SeqList)实例详解
- C#实现基于链表的内存记事本实例
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- Lua教程(七):数据结构详解
- C#算法函数:获取一个字符串中的最大长度的数字
- C#模拟链表数据结构的实例解析
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 算法练习之从String.indexOf的模拟实现开始