• 【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;
            
            
            
        }
    }
  • 相关阅读:
    【Android进阶】关于PagerAdapter的使用方法的总结
    不容易系列之(4)——考新郎
    阿牛的EOF牛肉串
    Number Sequence
    盐水的故事
    Digital Roots
    密码 hdu
    不容易系列之(3)—— LELE的RPG难题
    冒泡排序----java实现
    不容易系列之一
  • 原文地址:https://www.cnblogs.com/noaman/p/6950066.html
Copyright © 2020-2023  润新知