其他分享
首页 > 其他分享> > 206. 反转链表

206. 反转链表

作者:互联网

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

class Solution {
    public ListNode reverseList(ListNode head) {
         ListNode dummyHead = new ListNode(-1);
        dummyHead.next = head;
        if(head == null ||head.next == null){
            return head;
        }else {
            ListNode f = dummyHead.next;
            ListNode s = f.next;
            while(s!=null){
                f.next = s.next;
                s.next = dummyHead.next;
                dummyHead.next = s;
                s = f.next;
            }
        }
        return dummyHead.next;
    }
}
class Solution {
    public ListNode reverseList(ListNode head) {
   ListNode fir = new ListNode(-1);
        // 从前到后遍历原链表
        for(ListNode temp = head;temp!=null;temp=temp.next) {
            // 使用头插法插入新链表
            ListNode newNode = new ListNode(temp.val);
            newNode.next = fir.next;
            fir.next = newNode;
        }
        return fir.next;
   }
}

标签:head,dummyHead,ListNode,temp,206,反转,next,链表
来源: https://blog.csdn.net/weixin_43573534/article/details/88561839