【编程练习】单链表逆序Java实现
2017-08-12 17:32
549 查看
取出原始链表的第一个节点A,然后将该节点作为新链表的头节点。对原始链表遍历一次,就完成了这个工作,所以这个算法的复杂度为O(n)。
old_head和 new_head分别表示原始链表的头节点和新链表的头节点。
old_head和 new_head分别表示原始链表的头节点和新链表的头节点。
public class LinkedListReverse { static class ListNode{ int data; ListNode next; public ListNode(int data){ this.data = data; } } public static ListNode reverse(ListNode head){ if (head == null){ return null; } ListNode cur = head; ListNode oldHead = null; ListNode newHead = null; while(cur != null){ oldHead = cur.next; cur.next = newHead; newHead = cur; cur = oldHead; } return newHead; } public static void main(String[] args) { // 测试 ListNode node1 = new ListNode(1); ListNode node2 = new ListNode(2); ListNode node3 = new ListNode(3); node1.next = node2; node2.next = node3; ListNode head = new ListNode(0); head = reverse(node1); System.out.print(head.data+" "+head.next.data+" "+head.next.next.data); } }
相关文章推荐
- Java链表练习实现一元多项式的加法
- java实现单链表之逆序
- java实现单链表(增加节点,删除节点,根据下标获取节点,获取链表大小,链表逆序)
- 链表的正逆序打印 java语言实现
- 【数据结构练习】单向链表实现、链表逆序实现
- 【编程练习】二叉树的反转,Java和Python实现
- Java实现链表逆序
- JAVA链表实现与链表的逆序
- 【编程练习】快速排序,Java和Python实现
- java实现单链表(增加节点,删除节点,根据下标获取节点,获取链表大小,链表逆序)
- 剑指offer面试题java实现之题5:逆序打印链表
- Java语言中链表和双向链表的实现-Java基础-Java-编程开发
- 【转】用纯JAVA语言编程读取MAC地址的实现
- JAVA编程技巧之如何实现HTTP的断点续传
- 用纯JAVA语言编程读取MAC地址的实现
- Java 编程之实现文件或目录的解压.
- 阿翔编程学-Java缓存类的实现
- Java套接字实现网络编程之基础篇1
- Java实现泛型链表
- 在Java中实现UDP协议编程的方法[转]