码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 206. 反转链表

时间:2020-04-30 19:39:32      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:turn   http   null   pac   tco   lis   head   link   ack   

package 链表;

/**
 * https://leetcode-cn.com/problems/reverse-linked-list/
 * 206. 反转链表
 *
 * 解题思路 :使用给定节点的后一个节点的值覆盖给定节点的值,然后删除下一个节点
 */
public class _206_Reverse_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 = null;
            while (head != null) {
               ListNode tmp = head.next;
               head.next = newHead;
               newHead = head;
               head = tmp;
            }
            return newHead;
        }
    }

    /**
     * 递归
     *
     * @param head
     * @return
     */
    public ListNode reverseList(ListNode head) {
        // head == null 一定要写在head.next前面
        if (head == null || head.next == null) {
            return head;
        }

        ListNode newHead = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return newHead;
    }
}

LeetCode 206. 反转链表

标签:turn   http   null   pac   tco   lis   head   link   ack   

原文地址:https://www.cnblogs.com/jianzha/p/12810591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!