首页 > 其他 > 详细

Reverse Linked List

时间:2015-05-05 19:43:52      阅读:235      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!