zoukankan      html  css  js  c++  java
  • 剑指offer_15:反转链表

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

    示例:
    输入: 1->2->3->4->5->NULL
    输出: 5->4->3->2->1->NULL

    限制:
    0 <= 节点个数 <= 5000

    1、双指针

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode reverseList(ListNode head) {
            if(head==null) return null;
            ListNode cur=null;
            ListNode pre=head;
            while(pre!=null){
                ListNode node=pre.next;
                pre.next=cur;
                cur=pre;
                pre=node;
            }
            return cur;
        }
    }
    

    2、另一种双指针

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode reverseList(ListNode head) {
            if(head==null) return null;
            ListNode cur=head;
            while(head.next!=null){
                ListNode t=head.next.next;
                head.next.next=cur;
                cur=head.next;
                head.next=t;
            }
            return cur;
        }
    }
    

    3、递归

    https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/solution/fan-zhuan-lian-biao-yi-dong-de-shuang-zhi-zhen-jia/

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode reverseList(ListNode head) {
            if(head==null||head.next==null) return head;
            ListNode newHead=reverseList(head.next);
            head.next.next=head;
            head.next=null;
            return newHead;
        }
    }
    
  • 相关阅读:
    Oracle数据库学习(四)
    近期整理
    2020/5/29
    2020/5/26
    2020/5/25
    2020/5/22
    2020/5/16
    2020/5/15
    2020/5/14
    2020/5/13
  • 原文地址:https://www.cnblogs.com/xyz-1024/p/14053715.html
Copyright © 2011-2022 走看看