反转链表-剑指Offer

反转链表

题目描述

输入一个链表,反转链表后,输出链表的所有元素。

思路

  1. 翻转链表,需要一个节点的next指向他的前一个节点,这样会失去下一个节点(单向链表),这时我们需要提前用一个指针保存他的下一个节点,然后再改变next指向。

代码

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
		ListNode reverseHead = null;
		ListNode node = head;
		ListNode nodePre = null;
		while (node != null) {
			ListNode nodeNext = node.next;
			if (nodeNext == null) {
				reverseHead = node;
			}
			node.next = nodePre;
			nodePre = node;
			node = nodeNext;
		}
		return reverseHead;
    }
}
posted @ 2016-06-26 15:58  RosenDing  阅读(141)  评论(0编辑  收藏  举报