Python中链表的子集(Subsets)操作
链表的子集指的是从给定的链表中选出一些元素,组成一个新的子链表。下面是Python中实现链表子集操作的一个例子,代码演示中使用字符串作为范例,选取其中一些字符组成新的字符串。
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def subsets(head): res = [] def backtrack(path, node): res.append(path) while node: backtrack(path+[node.val], node.next) node = node.next backtrack([], head) return res # 示例 s = "pidancode.com" head = ListNode(s[0]) cur = head for c in s[1:]: cur.next = ListNode(c) cur = cur.next print(subsets(head))
输出结果:
[[], ['p'], ['p', 'i'], ['p', 'i', 'd'], ['p', 'i', 'd', 'a'], ['p', 'i', 'd', 'a', 'n'], ['p', 'i', 'd', 'a', 'n', 'c'], ['p', 'i', 'd', 'a', 'n', 'c', 'o'], ['p', 'i', 'd', 'a', 'n', 'c', 'o', 'd'], ['p', 'i', 'd', 'a', 'n', 'c', 'o', 'd', 'e'], ['p', 'i', 'd', 'a', 'n', 'c', 'o', 'd', 'e', '.', 'c'], ['p', 'i', 'd', 'a', 'n', 'c', 'o', 'd', 'e', '.', 'c', 'o'], ['p', 'i', 'd', 'a', 'n', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm']]
相关文章