链表操作与常见算法题目有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2434个文字,预计阅读时间需要10分钟。
链表的基本操作包括查找、删除、添加。查找、删除、添加。
查找:先定义一个链表的数据结构:javaclass DataNode { int key; int value; DataNode pre; DataNode next;
public DataNode() {}
public DataNode(int key, int value) { this.key=key; this.value=value; }}
链表的基本操作链表的基础操作有查找、删除、添加。
查找先定义一下链表的数据结构:
class DataNode{
int key;
int value;
DataNode pre;
DataNode next;
public DataNode(){};
public DataNode (int key,int value){
this.key = key;
this.value = value;
}
}
其中的key和value就是节点实际存储的值。pre和next分别指向前一个节点和下一个节点。一般的单向链表只有next,我这里定义的是双向链表。查找操作就是从头节点,一直遍历next,直到找到目标节点为止。可以用while循环或者递归实现,找到目标节点就跳出或返回即可,时间复杂度为O(n)。
删除以上面的双向链表为例,演示一下删除操作。我们假设有三个节点A、B、C,现要删除B节点。把A.next指向C,C.pre指向A。
本文共计2434个文字,预计阅读时间需要10分钟。
链表的基本操作包括查找、删除、添加。查找、删除、添加。
查找:先定义一个链表的数据结构:javaclass DataNode { int key; int value; DataNode pre; DataNode next;
public DataNode() {}
public DataNode(int key, int value) { this.key=key; this.value=value; }}
链表的基本操作链表的基础操作有查找、删除、添加。
查找先定义一下链表的数据结构:
class DataNode{
int key;
int value;
DataNode pre;
DataNode next;
public DataNode(){};
public DataNode (int key,int value){
this.key = key;
this.value = value;
}
}
其中的key和value就是节点实际存储的值。pre和next分别指向前一个节点和下一个节点。一般的单向链表只有next,我这里定义的是双向链表。查找操作就是从头节点,一直遍历next,直到找到目标节点为止。可以用while循环或者递归实现,找到目标节点就跳出或返回即可,时间复杂度为O(n)。
删除以上面的双向链表为例,演示一下删除操作。我们假设有三个节点A、B、C,现要删除B节点。把A.next指向C,C.pre指向A。

