题解 | #【模板】链表#

【模板】链表

http://www.nowcoder.com/practice/97dc1ac2311046618fd19960041e3c6f

思路:

为了避免要经常判断 链表是否为空 这一麻烦事,所以在进行 初始化 的时候,我们定义一个 头指针。注意区分 头指针头节点 的区别。有了 头指针 之后,就是正常的链表操作了(插入删除)。不过要小心的是,打印 链表的时候,不要头指针 给打印了。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = Integer.valueOf(scan.nextLine().trim());
        for (int i = 0; i < n; i++) {
            String[] operator = scan.nextLine().split(" ");
            if ("insert".equals(operator[0])) {
                insert(Integer.valueOf(operator[1]), Integer.valueOf(operator[2]));
            } else {
                delete(Integer.valueOf(operator[1]));
            }
        }
        ListNode node = head;
        if (null == node.next) {
            System.out.println("NULL");
            return;
        }
        while (null != node.next) {
            System.out.print(node.next.val + " ");
            node = node.next;
        }
    }
    public static class ListNode {
        public int val;
        public ListNode next;
        public ListNode(int val) {
            this.val = val;
        }
    }
    public static ListNode head = new ListNode(-1);
    public static void insert(int x, int y) {
        ListNode newNode = new ListNode(y);
        ListNode node = head;
        int sign = 0;
        while (null != node.next) {
            if (node.next.val == x) {
                newNode.next = node.next;
                node.next = newNode;
                sign = 1;
                break;
            }
            node = node.next;
        }
        if (sign == 0) {
            node.next = newNode;
        }
    }
    public static void delete(int x) {
        ListNode node = head;
        while (null != node.next) {
            if (node.next.val == x) {
                node.next = node.next.next;
                break;
            }
            node = node.next;
        }
    }
}
全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-20 17:08

相关推荐

刷到过很多实习生和mentor处成哥们儿的帖子,看完大概率会羡慕这种亲近的上下级关系。但我想说,不管你跟带教的关系有多铁或者多僵,都得拎清课题分离这事儿,工作的边界感千万不能乱踩!📝&nbsp;下面这几条雷区,实习生们可千万别踩!1.别越级瞎提建议除非带教主动问你想法,否则别愣头愣脑地凑上去说&nbsp;“我觉得你应该咋样咋样”。咱就管好自己那一亩三分地,把本职工作干明白就够了,别瞎操心不属于自己的事儿。2.别卖队友换好感❌那种把实习生之间的小秘密捅出去,就为了换带教或者同事认可的操作,纯纯是作死。尤其是那些会影响到别人的话,比如&nbsp;“她就是嫌通勤远才请假”“他们偷偷建了个小群吐槽”,这话一出口,不仅把同事的信任踩碎了,自己还得惹一身麻烦。3.别养成反驳甩锅的臭毛病📗犯了错第一反应别是找借口、甩锅,那没啥用。不如沉下心复盘问题出在哪儿,琢磨个解决方案出来,保证下次不再掉坑里,这才是正经事。4.别瞎掺和正职的八卦我之前实习的组氛围贼好,正职们经常聊对象、聊恋爱进展啥的。但人家正职能聊,不代表咱实习生能跟着掺和。乖乖当个安静的吃瓜群众,竖起耳朵听着就行,别瞎插嘴,当个小透明准没错👂4.别随便评价别人的人品背后嚼舌根说别人咋样咋样,很容易让人觉得你没分寸。你聊啥,别人就可能觉得你认同啥,职场里保持中立,少议论人,才是最稳的。
omega@1112:唯一的大雷其实是不要问mentor的薪资待遇
mt对你说过最有启发的一...
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务