码迷,mamicode.com
首页 > 其他好文 > 详细

Reverse Linked List

时间:2015-05-05 19:46:19      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:leetcode   链表   

Reverse a singly linked list.


递归方法

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode reverseList(ListNode head) {
    	return reverseList(null, head);
    }
    
    private ListNode reverseList(ListNode left,ListNode right){
    	if(right==null) return left;
    	ListNode rnext = right.next;
    	right.next = left;
    	return reverseList(right,rnext);
    }
}

迭代方法

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode reverseList(ListNode head) {
    	if(head==null) return head;
        ListNode leftHead = null;
        ListNode current = head;
        ListNode nxt = head.next;
        while(current!=null){
        	current.next = leftHead;
        	leftHead = current;
        	current = nxt;
        	if(current==null) break;
        	nxt = nxt.next;
        }
        return leftHead;
    }
}


Reverse Linked List

标签:leetcode   链表   

原文地址:http://blog.csdn.net/guorudi/article/details/45504395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!