# Python面试问题指南：如何编码链表

#### 每个节点包含2个属性

1. 它的价值。这可以是任何东西：整数，字符，字符串，对象等。
2. 指向序列中下一个节点的指针。

#### 一些定义

‘尾节点：尾节点是序列中的最后一个节点。由于它是最后一个节点，因此它指向null，因为序列中没有下一个节点。在上面的示例中，包含“3”的节点将是尾节点。

#### 代码是如何工作的呢？

class linkedListNode:
def __init__(self, value, nextNode=None):
self.value = value
self.nextNode = nextNode

node1 = linkedListNode("3") # "3"
node2 = linkedListNode("7") # "7"
node3 = linkedListNode("10") # "10"

node1.nextNode = node2
node2.nextNode = node3

“3”→“7”

“7”→” 10″

“3”→” 7″ →” 10″ →null

#### 遍历链接列表

node.value

node.nextNode

#### Traversal

currentNode = head

currentNode = node1
while currentNode is not None:
currentNode = currentNode.nextNode

currentNode = currentNode.nextNode

#### 插入元素

“3”→” 7″ →” 10″ →空

“3”→” 7″ →” 10″ →‘4’→null

node4 = linkedListNode("4")
node3.nextNode = node4

def insertNode(head, valuetoInsert):
while currentNode is not None:
if currentNode.nextNode is None:
currentNode = currentNode.nextNode

#### 删除元素

“3”→” 7″ →” 10″ →null

“3”→” 10″ →null

def deleteNode(head, valueToDelete):
previousNode = None
while currentNode is not None:
if currentNode.value == valueToDelete:
if previousNode is None:
currentNode.nextNode = None
previousNode.nextNode = currentNode.nextNode
previousNode = currentNode
currentNode = currentNode.nextNode
return head # Value to delete was not found.

‘n’=链接列表中的元素数量。