专题:链表

专题:链表

简介

链表是最基本,最常用的结构之一。

链表具有以下注意特性:

  • 顺序访问;
  • 离散;
  • 迭代;
  • 动态分配;

相关题目

各种链表实现

rust 中的链表

  • 定义
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#[derive(PartialEq, Eq, Clone, Debug)]
pub struct ListNode {
   pub val: i32,
   pub next: Option<Box<ListNode>>
}

impl ListNode {
   #[inline]
   fn new(val: i32) -> Self {
     ListNode {
      next: None,
      val
    }
  }
}
  • 遍历
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
let head = Some(Box::new(ListNode::new(0)));
// 1. 只读遍历
let mut p = &head;
while let Some(node) = p {
    p = &node.next;
}
// 2. 依次消耗节点遍历
let mut nodes = vec![];
while let Some(node) = p {
    *p = node.next.take();
    nodes.push(node);       //收集各个节点到nodes中, 原链表解散
}

参考

updatedupdated2024-05-152024-05-15