建设ftp网站的安全性,伊春市网站建设,网页翻译哪个好用,网站开发与维护说明分割链表 leetcode 86 分割链表 #xff08;中等#xff09;解题思路#xff1a;链表专题 leetcode 86 分割链表 #xff08;中等#xff09;
leetcode 86 分割链表 原题链接#xff0c;可以直接测试 给你一个链表的头节点 head 和一个特定值 x #xff0c;请你对链表进… 分割链表 leetcode 86 分割链表 中等解题思路链表专题 leetcode 86 分割链表 中等
leetcode 86 分割链表 原题链接可以直接测试 给你一个链表的头节点 head 和一个特定值 x 请你对链表进行分隔使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例1 输入head [1,4,3,2,5,2], x 3 输出[1,2,2,4,3,5] 示例2 输入head [2,1], x 2 输出[1,2] 提示 链表中节点的数目在范围 [0, 200] 内 -100 Node.val 100 -200 x 200 解题思路 建立两个临时链表一个用来链接小于给定值的节点一个来链接大于等于的节点然后再将两个链表连接在一起。就变得很简单了。 代码演示
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/
class Solution {public ListNode partition(ListNode head, int x) {if(head null){return null;}//用来链接小于给定值的临时链表ListNode dump1 new ListNode(0);//大于等于的节点的临时链表ListNode dump2 new ListNode(0);//下面三个指针用来移动比较节点的值ListNode p1 dump1;ListNode p2 dump2;ListNode p head;while(p ! null){if(p.val x){p1.next p;p1 p;}else{p2.next p;p2 p;}//将p 的next 指针断开p来到他下一个指针位置。ListNode temp p.next;p.next null;p temp;}//将两个临时链表合并起来p1.next dump2.next;//返回第一个节点。return dump1.next;}
}链表专题
将一个链表按给定值分成小于等于和大于三个部分
leetcoe–合并 K 个升序链表(java)
leetcode–删除链表的倒数第N个节点java
合并两个有序链表java
leetcode–环形链表.找到入环节点java
LeetCode相交链表java)