zoukankan      html  css  js  c++  java
  • 【11】链表分割

    【题目】

    编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前
    给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。

    【代码】

    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) {
            if (pHead == null)
                return pHead;
            
            ListNode curNode = pHead;
            ListNode smallNode = new ListNode(-1);
            ListNode smallHead = smallNode;
            ListNode bigNode = new ListNode(-1);
            ListNode bigHead = bigNode;
            
            while (curNode != null){
                if (curNode.val >= x){
                   bigNode.next = curNode;
                   bigNode = bigNode.next;
                } else {
                   smallNode.next = curNode;
                   smallNode = smallNode.next;
                }
                curNode = curNode.next;
            }
            
            smallNode.next = bigHead.next;
            bigNode.next = null;
            return smallHead.next;
            
            
            
        }
    }
  • 相关阅读:
    NSIS制作安装程序
    poj_1011木棒
    hdoj_1312Red and Black
    搜索题目推荐及解题报告
    应届生就职前要读的几本书
    poj_1564Sum It Up
    priority_queue用法
    hdoj_2952Counting Sheep
    poj_1154LETTERS
    poj_2362
  • 原文地址:https://www.cnblogs.com/noaman/p/6950066.html
Copyright © 2011-2022 走看看