• 26、输入一个链表,反转链表后,输出链表的所有元素。


     输入一个链表,反转链表后,输出链表的所有元素。

    思路:

     ListNode next = null;//用来保存待反序的第一个节点(head 和 next节点)

    ListNode pre = null;//用来保存已经反序的第一个结点

    next = head.next;//首先记录当前节点的下一个节点,(保存起来)

    //先用next保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂

    head.next = pre;//让当前节点指向前一个节点,因为要反序

    //保存完next,就可以让head从指向next变成指向pre了

    pre = head;//让前一个节点值,取代当前的节点值。因为要继续向下走

    //head指向pre后,就继续依次反转下一个节点

    head = next;//让下一个节点,取代当前节点

     //让pre,head,next依次向后移动一个节点,继续下一次的指针反转

     1 /*
     2 public class ListNode {
     3     int val;
     4     ListNode next = null;
     5 
     6     ListNode(int val) {
     7         this.val = val;
     8     }
     9 }*/
    10 public class Solution {
    11     public ListNode ReverseList(ListNode head) {
    12     ListNode pre = null;
    13     ListNode next = null;
    14     while (head != null) {
    15         next = head.next;
    16         head.next = pre;
    17         pre = head;
    18         head = next;
    19     }
    20     return pre;
    21 }
    22 }

    c++代码:

  • 相关阅读:
    String拷贝,构造和析构函数.
    得到透明画刷的颜色。
    程序关闭困难,析构函数执行不到的原因。
    CFileDialg文件后缀名的限制
    反转字符串数组,异或交换两个值
    C++ string在unicode下
    多线程中CString内存泄漏的解决方法。
    得到控件在窗口的位置
    学习进步的方法
    HyperLink与LinkButton的区别
  • 原文地址:https://www.cnblogs.com/olivegyr/p/7071615.html
Copyright © 2020-2023  润新知