zoukankan      html  css  js  c++  java
  • [leetcode]86. Partition List划分链表

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

    You should preserve the original relative order of the nodes in each of the two partitions.

    Input: head = 1->4->3->2->5->2, x = 3
    Output: 1->2->2->4->3->5

    题意:

    给定一个链表和一个值,把小于等于和大于该值的部分分别放到链表的一前一后去。

    思路:

    先分为两个链表

    然后合并

    代码:

     1 class Solution {
     2     public ListNode partition(ListNode head, int x) {
     3         ListNode leftDummy = new ListNode(-1);
     4         ListNode rightDummy = new ListNode (-1);    
     5         ListNode left_cur = leftDummy;
     6         ListNode right_cur = rightDummy; 
     7         ListNode cur = head;
     8         
     9         while( cur != null){
    10             if(cur.val < x){
    11                 left_cur.next = cur;
    12                 left_cur = cur;
    13             }else{
    14                 right_cur.next = cur;
    15                 right_cur = cur;
    16             }
    17             cur = cur.next;    
    18         }
    19        left_cur.next = rightDummy.next;
    20        right_cur.next = null;
    21        return leftDummy.next;       
    22     }

     

  • 相关阅读:
    冒泡排序(可传函数参数)
    字符串转化成整数
    遍历文档内容,得到HTML层级结构
    跨域通信问题
    矩阵的快速幂
    CSS tricks
    牛客赛马网笔试攻略
    项目中遇到的问题
    Mysql远程链接访问权限设置
    恢复delete删除的数据
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9227167.html
Copyright © 2011-2022 走看看