rambless

从单向链表中删除指定值的节点

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            Node head = new Node(0);
            head.next = new Node(in.nextInt());
            int val;
            int nVal;
            for(int i=0; i<n-1; i++) {
                val = in.nextInt();
                nVal = in.nextInt();
                add(head, val, nVal);
            }
            get(head, in.nextInt());
        }
    }

    private static void add(Node head, int val, int nVal) {
        Node t = new Node(val);
        Node temp;
        Node pre = head.next;
        int v;
        while(pre != null) {
            v = pre.val;
            if(v == nVal) {
                temp = pre.next;
                pre.next = t;
                t.next = temp;
                break;
            }
            pre = pre.next;
        }
    }

    private static void get(Node head, int num) {
        Node pre = head;
        Node curr = head.next;
        int val;
        while(curr != null) {
            val = curr.val;
            if(val==num) {
                if(curr.next == null) {
                    pre.next = null;
                } else {
                    pre.next = curr.next;
                }
                break;
            }
            pre = curr;
            curr = curr.next;
        }

        head = head.next;
        while(head != null) {
            System.out.print(head.val + " ");
            head = head.next;
        }

    }

    static class Node {
        int val;
        Node next;

        public Node(int val) {
            this.val = val;
        }
    }
}

全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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