JAVA题解 | #划分链表#

划分链表

http://www.nowcoder.com/practice/1dc1036be38f45f19000e48abe00b12f

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param x int整型 
     * @return ListNode类
     */
    public ListNode partition (ListNode head, int x) {
      ListNode node = new ListNode(-1);
        node.next = head;
        ListNode res = node;
        if(head==null)
            return null;
        while(node.next!=null&&node.next.val<x){
            node = node.next;
        }
        ListNode temp = node.next;//后半部分节点,node为前半部分最后一个<x的节点
        ListNode h2 = node.next;//记录后半部分头节点
        ListNode pre = node;//记录前置节点,方便做删除操作
        while(temp!=null){
            if(temp.val<x){
                //链表后半部分删除节点操作
                ListNode t = temp.next;
                pre.next = temp.next;
                //链表的前半部分尾部插入节点操作
                node.next = temp;
                temp.next = null;
                node = node.next;
                temp = t;
            }
            else {
                pre = temp;
                temp = temp.next;
            }
        }
        node.next = h2;
        return res.next;
    }
}

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 会员标识 头像
点赞 评论 收藏
转发
头像
2022-12-19 15:48
重庆工商大学_2024
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-11 21:41
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议