LeetCode Algorithm LCP 44. 开幕式焰火
生活随笔
收集整理的這篇文章主要介紹了
LeetCode Algorithm LCP 44. 开幕式焰火
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LCP 44. 開幕式焰火
Ideas
樹類型的題目一般都需要用到遞歸,這道題相對來說比較簡單,我們只需要遍歷整棵樹,然后把節點值記錄到一個集合中,最后返回集合的長度就可以了。
所以這道題的考點就是樹的遍歷,奉上我的二叉樹前序遍歷模板:
遞歸版本:
def preorderTraversalRecursion(node):if not node:returnprint(node.value, end=' ') # 遞歸序第一次到達 node 的時候 printBinaryTreeNode.preorderTraversalRecursion(node.left)BinaryTreeNode.preorderTraversalRecursion(node.right)非遞歸版本:
def preorderTraversalLoop(node):if not node:returnstack = [node] # list 模擬 stackwhile stack:tmp = stack.pop()print(tmp.value, end=' ')if tmp.right:stack.append(tmp.right)if tmp.left:stack.append(tmp.left)這道題把模板稍微一改就行了。
Code
Python
# Definition for a binary tree node. class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = Noneclass Solution:def numColor(self, root: TreeNode) -> int:def pre_order_traversal(node: TreeNode):if not node:returnstack = [node]while stack:item = stack.pop()ans.add(item.val)if item.right:stack.append(item.right)if item.left:stack.append(item.left)ans = set()pre_order_traversal(root)return len(ans)總結
以上是生活随笔為你收集整理的LeetCode Algorithm LCP 44. 开幕式焰火的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode Algorithm 5
- 下一篇: RuntimeError: Bool t