无环单链表插值

无环单链表插值

https://www.nowcoder.com/practice/3ccf07c4d7374cc685be4a3883708540?tpId=196&tqId=39744&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj&difficulty=undefined&judgeStatus=undefined&tags=580&title=

无环单链表插值

思路:

1.创建一个新链表的虚的头结点**

2.遍历数组,将每个数组中的值创建一个对应的节点

3.注意分为两种特殊的情况情况讨论:情况一:val的值是插在两个节点中间,val是插在链表的末尾

代码:

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    public ListNode insert (int[] A, int val) {
        //先创建一个新链表的虚的头结点
        ListNode dummynode=new ListNode(-1);
        ListNode cur=dummynode;
        //由于如果需要插入的节点如果插入到链表的最后,那么就需要特殊处理
        //所以分为两种情况:一种是插在两个节点中间,另一种是插在链表的最后
        boolean flag=true;
        //遍历整个数组,将对应的位置的值创建成新的节点,连在链表上
        //如果发现有大于val的节点,就创建一个节点用来放val,再将对应的节点插在该节点之前
        for(int i=0;i<A.length;i++){
            if(A[i]>val&&flag==true){
                ListNode p=new ListNode(val);
                cur.next=p;
                cur=cur.next;
                flag=false;
            }
            ListNode t=new ListNode(A[i]);
            cur.next=t;
            cur=cur.next;
        }
        //特使情况特殊处理:将val的值插在链表的最后一个节点的后面
        if(flag==true){
            ListNode now=new ListNode(val);
            cur.next=now;
            cur=cur.next;
        }
        return dummynode.next;
    }
}
全部评论

相关推荐

喜提窑鸡一筐:简历排版有一些问题,如果没有排版能力建议直接在超级简历用现成模板(无广,建议超级简历看到结一下账,别有那些太花里胡哨的,简历架构按:教育背景,实习经历,项目经历,其他能力概述/获奖经历,教育背景简单写点说明学校专业,在读时间即可,GPA好看可以写上去,不好看不用写,背景整体篇幅占15%以内,大篇幅给实习经历和项目经历,项目经历别写太多废话,HR都懒得看,通常按项目目标,具体工作1.2.3点/涉及技术栈,项目成果这样结构化展开,如果没有实现经历最好是有2-3段项目经历,其他最后补充点个人能力综述and获奖经历即可
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务