在 Python 中檢查連結串列中連續節點的絕對差是否為 1
假設我們有一個單鏈表,其中每個節點包含一個整數。我們必須找出兩個連續節點的絕對差是否為 1。
因此,如果輸入類似於 start_node->5->6->7->8->7->6->5->4,則輸出將為 True。
要解決此問題,我們將遵循以下步驟 -
- temp := start_node
- 當 temp 不為 null 時,執行
- 如果 temp.link 與 null 相同,則
- 退出迴圈
- 如果 |(temp) 的值 - (temp.link) 的值| 不等於 1,則
- 返回 False
- temp := temp.link
- 如果 temp.link 與 null 相同,則
- 返回 True
示例
讓我們看看以下實現方式,以更好地理解 -
import math class link_node: def __init__(self, value): self.value = value self.link = None def create_node(value): temp = link_node(value) temp.value = value temp.link = None return temp def make_list(elements): head = link_node(elements[0]) for element in elements[1:]: ptr = head while ptr.link: ptr = ptr.link ptr.next = link_node(element) return head def solve(start_node): temp = start_node while (temp): if (temp.link == None): break if (abs((temp.value) - (temp.link.value)) != 1) : return False temp = temp.link return True start_node = make_list([5, 6, 7, 8, 7, 6, 5, 4]) print(solve(start_node))
輸入
[5, 6, 7, 8, 7, 6, 5, 4]
輸出
True
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP