反转链表

反转链表

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

解决思路:共有三种情况,1.链表为空;2.链表中只有一个元素;3.链表中有多个元素。前两种情况直接返回入参;第三种情况,创建一个新的头节点和尾节点,每次循环将原链表中的指向反转,当最后两个节点反转时,注意新建头节点的指向

public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head==null){
            return head;
        }
        if(head.next==null){
            return head;
        }
        ListNode newtail=new ListNode(head.val);
        while(head.next.next!=null){
            ListNode newhead=new ListNode(head.next.val);
            newhead.next=newtail;
            head=head.next;
            newtail=newhead;
        }
        ListNode newHead=new ListNode(head.next.val);
        newHead.next=newtail;
        return newHead;
    }
}
全部评论

相关推荐

12-03 03:32
安徽大学 Java
点赞 评论 收藏
分享
冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务