• 反转链表


    此博客链接:https://www.cnblogs.com/ping2yingshi/p/12753149.html

    反转链表(47min)

    题目链接:https://leetcode-cn.com/problems/partition-list/

    给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。

    你应当保留两个分区中每个节点的初始相对位置。

    示例:

    输入: head = 1->4->3->2->5->2, x = 3
    输出: 1->2->2->4->3->5

    题解:

              此题真是题目读了好几遍,也没有看懂为啥4要在3前面输出,后来刷了题解才明白为啥。因为题目说保持每个节点的初始相对位置。

             思路:

                       1.创建两个节点,一个保存小于x的数,一个保存大于等于x的数。

                       2.当链表中的值小于x时,连接到小链表中;当链表中的值大于x时,链接到大链表中。

                       3.整个链表遍历完后,把大链表的头结点接到小链表的尾部。

                       4.返回小链表的头节点。

    代码如下:

    class Solution {
        public ListNode partition(ListNode head, int x) {
            ListNode biglink = new ListNode(0);
            ListNode smallink = new ListNode(0);
    
            ListNode bignum = biglink;
            ListNode smallnum = smallink;
            ListNode p=head;
    
          while(p!=null)
          {
              if(p.val>=x)
              {
                  bignum.next=p;
                  bignum=bignum.next;
              }
              else{
                  smallnum.next=p;
                  smallnum=smallnum.next;
              }
              p=p.next;
          }
          smallnum.next=biglink.next;
          bignum.next=null;
    
            return smallink.next;
        }
    }
  • 相关阅读:
    几句让自己保留的动力的格言
    repo 的几个使用理解
    (转)汇编中断大全
    (转) 汇编.section和.text解释
    find 命令一些小技巧;
    android 系统使用c语言获取系统属性
    新的起点
    PDBC详细介绍
    PDBC(连接数据库)
    Python——基础知识
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/12753149.html
Copyright © 2020-2023  润新知