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

leetcode-206-反转链表

时间:2019-08-03 00:51:31      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:||   int   val   bsp   etc   ==   inf   链表   col   

问题:

技术图片

 

package com.example.demo;

public class Test206 {

    /**
     * 翻转链表
     * 方法一:迭代
     * 思路:
     * 每次循环的时候交换两个节点
     *
     * @param head
     * @return
     */
    public ListNode reverseList(ListNode head) {
        // 构建一个新的链表
        ListNode pre = null;
        ListNode cur = head;
        while (cur != null) {
            // 将当前处理节点的下一个节点暂存(也就是分开当前节点和下一个节点 2  3->4->5)
            ListNode next = cur.next;
            // 将当前节点赋给新链表 , 2->1
            cur.next = pre;
            // 重新覆盖新链表
            pre = cur;
            // 处理下一个节点
            cur = next;
        }
        return pre;
    }

    /**
     * 方法二:递归
     */
    public ListNode reverseList1(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode p = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return p;
    }


    public class ListNode {
        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
        }
    }
}

 

leetcode-206-反转链表

标签:||   int   val   bsp   etc   ==   inf   链表   col   

原文地址:https://www.cnblogs.com/nxzblogs/p/11276020.html

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