• Leetcode 206. Reverse Linked List


    Similar Questions 

    思路:链表反转。

    解法一:迭代。

    添加头节点(推荐):不断将当前元素start插入dummy和dummy.next之间,实现反转。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode reverseList(ListNode head) {
    11         if(head == null) return head;
    12         ListNode dummy = new ListNode(0);
    13         dummy.next = head;
    14         ListNode pre = head, start = head.next;
    15         while(start != null) {
    16             pre.next = start.next;
    17             start.next = dummy.next;
    18             dummy.next = start;
    19             start = pre.next;
    20         }
    21         return dummy.next;
    22     }
    23 }

    不添加头节点:

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode reverseList(ListNode head) {
    11         ListNode p0, p1;
    12         p0 = null;
    13         p1 = head;
    14         while(p1 != null) {//确保p1不为空
    15             ListNode p2 = p1.next;
    16             p1.next = p0;
    17             p0 = p1;
    18             p1 = p2;
    19         }
    20         return p0;
    21     }
    22 }

    解法二:递归。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode reverseList(ListNode head) {
    11         if(head == null || head.next == null) return head;//这个判断很重要
    12         ListNode p1 = head.next;
    13         ListNode p0 = reverseList(p1);
    14         p1.next = head;
    15         head.next = null;
    16         return p0;
    17     }
    18 }

    Next challenges: Reverse Linked List II Binary Tree Upside Down

  • 相关阅读:
    算法题之丢手绢问题
    Java接口成员变量和方法默认修饰符
    清空select下拉框的方法
    Java基础数据类型的默认值
    JVM内存区域划分
    Java中匿名内部类
    Java值传递
    部署web Service到tomcat
    Tomcat环境下配置数据源
    遇到和需要解决的问题
  • 原文地址:https://www.cnblogs.com/Deribs4/p/8406523.html
Copyright © 2020-2023  润新知