美文网首页
链表逆序

链表逆序

作者: 站在埃菲尔铁塔上看风景 | 来源:发表于2017-09-21 16:14 被阅读0次

链表逆序

1.基础

链表是一种递归的数据结构,它或者为空,或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。

在面向对象编程中,用Java实现一个链表如下

public class Node {

     Item item;

     Node next;

}

下面是构造链表的过程

链表表示的是一列元素。

了解了基础内容,我们便上题:

下面是leetcode的第92题:

Reverse a linked list from positionmton. Do it in-place and in one-pass.

For example:

Given1->2->3->4->5->NULL,m= 2 andn= 4,

return1->4->3->2->5->NULL.

Note:

Givenm,nsatisfy the following condition:

1 ≤mn≤ length of list.

解答的代码:

public class Solution {

public ListNode reverseBetween(ListNode head, int m, int n) {

             if (head == null) {

                     return null;

              }

             ListNode dummy = new ListNode(0);

             dummy.next = head;

             ListNode pre = dummy;

             for (int i = 0; i < m - 1; i ++)

             pre = pre.next;

             ListNode start = pre.next;

            ListNode then = start.next;

            for (int i = 0; i < n - m; i ++) {

                  start.next = then.next;

                   then.next = pre.next;

                   pre.next = then;

                  then = start.next;

              }

             return dummy.next;

       }

}

解析:

需要有三个指针运作,很难理解,不过画图之后,就很清晰明了,本方法在反转链表时,每次start指向的下一个元素都是then的下一个元素,then的下一个元素为pre的下一个元素,pre的下一个元素,pre的下一个元素为then,然后更改then为start的下一个元素。画图如下:

相关文章

  • Python 将链表逆序

    说明:链表逆序,是将链表中的单向链表逆序,双向链表逆序和正序都是一样的,所以没有任何意义。 代码: class N...

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

  • LeetCode 2. Add Two Numbers

    单链表逆序相加

  • 链表逆序

    定义ListNode节点结构体 例题:链表链接 LeetCode 206. Reverse Linked Lis...

  • 链表逆序

    -(void)reverse(node *head) { node*per,; node *current = h...

  • 链表逆序

    链表逆序 1.基础 链表是一种递归的数据结构,它或者为空,或者是指向一个结点(node)的引用,该结点含有一个泛型...

  • 链表逆序

    如A->B->C->D->E 思路一: 先取出链表的最后一个E,然后将E作为新链表的头, 现在状态为 原始链表:A...

  • 链表逆序

    面试中有的时候会让我们写一个简单单链表逆序。 我们遍历链表从头结点,一直遍历到尾节点。例如从头至尾分别是1,2,3...

  • 链表

    模板 多次删除 逆序(反向)链表

  • 算法学习之二: 链表逆序

    链表的定义,链表包括两个部分,数据data 和下一个节点 next 链表逆序: 这样就可以起到逆序的结果,为了测试...

网友评论

      本文标题:链表逆序

      本文链接:https://www.haomeiwen.com/subject/rfgzsxtx.html