题解 | #从单向链表中删除指定值的结点#

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

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

解法一:
用数组假装链表

use std::io;

fn main() {
    let mut s = String::new();
    io::stdin().read_line(&mut s).expect("Failed To Read Line !");
    let mut v = vec![];
    let mut k = 0usize;
    let mut root = 0u32;
    let mut size = 0usize;
    for i in s.trim().split(" ") {
        match k {
            0 => size = i.parse::<usize>().unwrap(),
            1 => root = i.parse::<u32>().unwrap(),
            _ => v.push(i.parse::<u32>().unwrap()),
        }
        k += 1;
    }
    let mut list = Vec::with_capacity(size);
    list.push(root);
    let mut i = 0;
    while i < v.len() - 1 {
        for j in 0..list.len() {
            if v[i + 1] == list[j] {
                list.insert(j + 1, v[i]);
                break;
            }
        }
        i += 2;
    }
    root = v[i];
    list.retain(|&x| x != root);
    if list.len() > 0 {
        for i in list.iter() {
            print!("{} ", *i);
        }
    }
}

解法二:
构造链表来解

wait my code
用 Rust 刷华为机试HJ 文章被收录于专栏

用 Rust 刷 HJ100 题,只需要懂基础 Rust 语法就能看懂

全部评论

相关推荐

叁六玖:有阿里妈妈,那有不有阿里爸爸
求职遇到的搞笑事件
点赞 评论 收藏
分享
牛马人的牛马人生:等等吧 说不定现在人太多了不急海投就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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