leetcode_Reverse Linked List

来源:互联网 发布:hantaioppai新域名 编辑:程序博客网 时间:2024/05/16 18:40

描述:

Reverse a singly linked list.

思路:

感觉还是非递归方法更简洁明快,创建一个头节点并链接到第一个结点前面,从第二个结点开始依次用前插法插到前面,最后得到倒序的结点。

代码:

非递归方法:

public ListNode reverseList(ListNode head) {        if(head==null||head.next==null)            return head;        ListNode headNode=new ListNode(0);        ListNode pNode,qNode;        headNode.next=head;        pNode=head.next;        head.next=null;        while(pNode!=null)        {            qNode=pNode;            pNode=pNode.next;            qNode.next=headNode.next;            headNode.next=qNode;        }        return headNode.next;    }

递归方法:

public ListNode reverseList(ListNode head) {        if(head==null)            return head;        ListNode newHead,curNode,tempNode;        if(head.next==null)            return head;        else        {            curNode=head;            tempNode=head.next;            newHead=reverseList(tempNode);        }        curNode.next=null;        tempNode.next=curNode;        return newHead;    }


0 0
原创粉丝点击