链表分割(java)

描述

现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。

题解

import java.util.*;

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Partition {
    public ListNode partition(ListNode pHead, int x) {
        ListNode bs = null;
        ListNode be = null;
        ListNode as = null;
        ListNode ae = null;
        ListNode cur = pHead;
        while (cur != null) {
            if (cur.val < x) {
                if (bs == null) {
                    bs = cur;
                    be = cur;
                    cur = cur.next;
                } else {
                    be.next = cur;
                    be = be.next;
                    cur = cur.next;
                }
            } else {
                if (as == null) {
                    as = cur;
                    ae = cur;
                    cur = cur.next;
                } else {
                    ae.next = cur;
                    ae = ae.next;
                    cur = cur.next;
                }
            }
        }
        if (bs == null) {
            return as;
        }
        be.next = as;
        if (as != null) {
            ae.next = null;
        }
        return bs;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 编写一个 Java 程序,输出 "Hello, World!"。 2. 编写一个 Java 程序,计算并输出 1+2+3+...+100 的值。 3. 编写一个 Java 程序,计算并输出 1/2+2/3+3/4+...+99/100 的值。 4. 编写一个 Java 程序,输入一个字符串,将其中的小写字母全部转换成大写字母。 5. 编写一个 Java 程序,输入一个字符串,将其中的大写字母全部转换成小写字母。 6. 编写一个 Java 程序,输入一个字符串,判断其是否是回文字符串。 7. 编写一个 Java 程序,输入两个整数,求它们的最大公约数和最小公倍数。 8. 编写一个 Java 程序,输入一个正整数,判断它是否是素数。 9. 编写一个 Java 程序,输入一个正整数,输出它的所有因数。 10. 编写一个 Java 程序,输入一个正整数,判断它是不是完数。 11. 编写一个 Java 程序,输入一个字符串,将其中的空格全部删除。 12. 编写一个 Java 程序,输入一个字符串,统计其中的数字、字母、空格和其他字符的个数。 13. 编写一个 Java 程序,输入一个字符串和一个字符,统计该字符在字符串中出现的次数。 14. 编写一个 Java 程序,输入一个字符串和一个子串,统计该子串在字符串中出现的次数。 15. 编写一个 Java 程序,输入一个字符串和一个子串,将字符串中所有的子串全部删除。 16. 编写一个 Java 程序,输入一个字符串,将其中的元音字母全部删除。 17. 编写一个 Java 程序,输入一个字符串,将其中的大写字母转换成小写字母,将其中的小写字母转换成大写字母。 18. 编写一个 Java 程序,输入一个字符串,将其中的每个单词的首字母大写。 19. 编写一个 Java 程序,输入一个字符串,将其中的每个单词的首字母小写。 20. 编写一个 Java 程序,输入一个字符串,将其中的每个单词的首字母大写,其余字母小写。 21. 编写一个 Java 程序,输入一个字符串和一个子串,将字符串中所有的子串全部替换为另一个字符串。 22. 编写一个 Java 程序,输入一个字符串和两个字符,将字符串中所有的第一个字符全部替换为第二个字符。 23. 编写一个 Java 程序,输入一个字符串和两个子串,将字符串中所有的第一个子串全部替换为第二个子串。 24. 编写一个 Java 程序,输入一个字符串和一个整数,将字符串中所有的第一个字符全部向右移动该整数个位置。 25. 编写一个 Java 程序,输入一个字符串和一个整数,将字符串中所有的第一个字符全部向左移动该整数个位置。 26. 编写一个 Java 程序,输入一个字符串和一个整数,将字符串中所有的第一个子串全部向右移动该整数个位置。 27. 编写一个 Java 程序,输入一个字符串和一个整数,将字符串中所有的第一个子串全部向左移动该整数个位置。 28. 编写一个 Java 程序,输入一个字符串和一个整数,将字符串中所有的字母全部向右移动该整数个位置。 29. 编写一个 Java 程序,输入一个字符串和一个整数,将字符串中所有的字母全部向左移动该整数个位置。 30. 编写一个 Java 程序,输入一个字符串和一个正整数,将字符串分成若干个长度为该正整数的子串,并输出这些子串。 31. 编写一个 Java 程序,输入两个正整数,求它们的最大公约数和最小公倍数。 32. 编写一个 Java 程序,输入一个正整数,输出它的二进制表示。 33. 编写一个 Java 程序,输入一个正整数,输出它的八进制表示。 34. 编写一个 Java 程序,输入一个正整数,输出它的十六进制表示。 35. 编写一个 Java 程序,输入一个十进制数和一个进制数,输出该十进制数的对应进制数表示。 36. 编写一个 Java 程序,输入一个二进制数,输出对应的十进制数。 37. 编写一个 Java 程序,输入一个八进制数,输出对应的十进制数。 38. 编写一个 Java 程序,输入一个十六进制数,输出对应的十进制数。 39. 编写一个 Java 程序,输入一个二进制数,输出对应的八进制数。 40. 编写一个 Java 程序,输入一个二进制数,输出对应的十六进制数。 41. 编写一个 Java 程序,输入一个八进制数,输出对应的二进制数。 42. 编写一个 Java 程序,输入一个八进制数,输出对应的十六进制数。 43. 编写一个 Java 程序,输入一个十六进制数,输出对应的二进制数。 44. 编写一个 Java 程序,输入一个十六进制数,输出对应的八进制数。 45. 编写一个 Java 程序,输入一个字符串,将其中的所有字符按照 ASCII 码值从小到大排序并输出。 46. 编写一个 Java 程序,输入一个字符串,将其中的所有字符按照 ASCII 码值从大到小排序并输出。 47. 编写一个 Java 程序,输入一个字符串,将其中的所有字符按照字典序从小到大排序并输出。 48. 编写一个 Java 程序,输入一个字符串,将其中的所有字符按照字典序从大到小排序并输出。 49. 编写一个 Java 程序,输入一个字符串和一个子串,求该子串在该字符串中的最后一次出现的位置。 50. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组。 51. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表。 52. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合。 53. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表。 54. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈。 55. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列。 56. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆。 57. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合中的第一个字符串。 58. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表中的第一个字符串。 59. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈中的第一个字符串。 60. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列中的第一个字符串。 61. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆中的第一个字符串。 62. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组中的最后一个字符串。 63. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表中的最后一个字符串。 64. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合中的最后一个字符串。 65. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表中的最后一个字符串。 66. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈中的最后一个字符串。 67. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列中的最后一个字符串。 68. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆中的最后一个字符串。 69. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组中的最大长度。 70. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表中的最大长度。 71. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合中的最大长度。 72. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表中的最大长度。 73. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈中的最大长度。 74. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列中的最大长度。 75. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆中的最大长度。 76. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组中的最小长度。 77. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表中的最小长度。 78. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合中的最小长度。 79. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表中的最小长度。 80. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈中的最小长度。 81. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列中的最小长度。 82. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆中的最小长度。 83. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组中的字符串个数。 84. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表中的字符串个数。 85. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合中的字符串个数。 86. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表中的字符串个数。 87. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈中的字符串个数。 88. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列中的字符串个数。 89. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆中的字符串个数。 90. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组中的最短字符串。 91. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表中的最短字符串。 92. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串集合中的最短字符串。 93. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串链表中的最短字符串。 94. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串栈中的最短字符串。 95. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串队列中的最短字符串。 96. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串堆中的最短字符串。 97. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串数组中的最长字符串。 98. 编写一个 Java 程序,输入一个字符串和一个子串,将该字符串按照该子串进行分割,并输出分割后的字符串列表中的最长字符串。 99. 编写一个 Java 程序,输入一个字符串和一个子串,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢喝雪碧的阿埋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值