zoukankan      html  css  js  c++  java
  • 86. Partition List

    一、题目

      1、审题

      2、分析

        给出一个整数链表,和一个目标数 x,将链表中节点值 < x 的节点放在值为 x 节点的左边,且保持链表原来的节点顺序。

    二、解答

      1、思路:

        方法一、

          新建两个伪头结点,head1、head2,遍历链表节点:

          ①、若 val < x,则在 head1 后添加该节点

          ②、否则在 head2 后添加该节点

          ③、将head1 与 head2拼接,同时去除两个伪头结点。

    public ListNode partition2(ListNode head, int x) {
    
            if(head == null || head.next == null)
                return head;
            
            ListNode fakeHead = new ListNode(0);
            fakeHead.next = head;
            ListNode pre = fakeHead;
            ListNode cur = head;
            ListNode next = new ListNode(x);
            ListNode head2 = next;
            
            while(cur != null) {
                if(cur.val < x) {
                    pre.next = cur;
                    pre = pre.next;
                }
                else {//if(cur.val >= x) {
                    next.next = cur;
                    next = next.next;
                }
                cur = cur.next;
            }
            next.next = null;
            pre.next = head2.next;
            return fakeHead.next;
        }
  • 相关阅读:
    多属性量化决策模型
    对称加密与非对称加密
    子网掩码
    网络安全
    万维网WWW、电子邮件email与文件传输FTP
    DHCP协议
    DNS协议
    ARP协议与RARP协议
    springboot WebSocket的使用
    Java调用Python的两种方式
  • 原文地址:https://www.cnblogs.com/skillking/p/9698756.html
Copyright © 2011-2022 走看看