Skip to content

Commit 6aeab4f

Browse files
committed
update linked list
1 parent bc9df86 commit 6aeab4f

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

Linked_list/linked_list.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,12 @@ def reverse(self):
104104
prev = None
105105
current = self.head
106106
while current:
107-
_temp = current.next # 对当前节点的下一个节点赋值
108-
current.next = prev # 反转当前节点的下一个节点指向前一节点
109-
prev = current # 前一个节点变成当前节点
107+
# _temp = current.next # 对当前节点的下一个节点赋值
108+
# current.next = prev # 反转当前节点的下一个节点指向前一节点
109+
# prev = current # 前一个节点变成当前节点
110+
_temp, current.next, prev = current.next, prev, current
110111
current = _temp # 节点偏移/迭代
111-
self.head = prev # 原来的链表头指向None
112+
self.head = prev # 原来的链表头指向新的链表头
112113

113114
def __iter__(self):
114115
node = self.head
@@ -122,8 +123,14 @@ def main():
122123
for i in range(10):
123124
link_list.insert_tail(i)
124125
link_list.show_node_data()
125-
print('=====reverse it======')
126+
print('==before===insert head======')
127+
for i in range(10, 20):
128+
link_list.insert_head(str(i))
129+
link_list.show_node_data()
130+
link_list.delete_head()
131+
print('==before===reverse it======')
126132
link_list.reverse()
133+
link_list.delete_tail()
127134
link_list.show_node_data()
128135
########################
129136
# print("Inserting 1st at Head")

Linked_list/readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ data|next
3939
[参见这里](https://blog.csdn.net/feliciafay/article/details/6841115)
4040
1. 使用3个指针遍历单链表,逐个链接点进行反转
4141

42-
4342
2. 从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。
4443
![原来的链表头最后移动到表尾](./img/reverse_linked_list_head_last.gif)
4544

45+
3. 递归(相信我们都熟悉的一点是,对于树的大部分问题,基本可以考虑用递归来解决。但是我们不太熟悉的一点是,对于单链表的一些问题,也可以使用递归。可以认为单链表是一颗永远只有左(右)子树的树,因此可以考虑用递归来解决。或者说,因为单链表本身的结构也有自相似的特点,所以可以考虑用递归来解决)
4646

47-
3. 递归(相信我们都熟悉的一点是,对于树的大部分问题,基本可以考虑用递归来解决。但是我们不太熟悉的一点是,对于单链表的一些问题,也可以使用递归。可以认为单链表是一颗永远只有左(右)子树的树,因此可以考虑用递归来解决。或者说,因为单链表本身的结构也有自相似的特点,所以可以考虑用递归来解决)
47+
- []()

0 commit comments

Comments
 (0)