Java-反转链表

反转链表

http://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca

1->2->3
head=1;
实现反转,先将1->2断开,则p=2,为了不使3丢失,q=3,将p指向1,即p.next=head;然后循环,p只要不是空,就可以将(1)q=p.next; (2)p.next=head; (3)head=p;(4)p=q;向后迭代;
其中(2)是赋值,(1)(3)(4)是记录值,向后循环

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head==null) return null;
        ListNode p=head.next;
        ListNode q=null;
        head.next=null;
        while(p!=null){
            q=p.next;
            p.next=head;
            head=p;
            p=q;
        }
        return head;

    }
}
全部评论

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
专心打鱼:互联网搬运工,贴子都要偷
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务