题目链接:
https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?
题目描述:
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。
基本思路:
创建两个新链表,遍历原链表并将原来的链表的值和给定值x进行比较,比x小的采用尾插法插入到带傀儡节点为smallHead的新链表1中,比x大的也采用尾插法插入到带傀儡节点为bigHead的新链表2中,比较完原链表所有的节点后,将链表1和链表2拼接在一起。链表1在前,链表2在后,最后返回smallHead即可。
代码实现;
import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/