刷題系列 - 在二叉樹中查詢給出節點,並返回以該節點為根的樹

張國平發表於2020-02-20

很簡答的一道題目,就是二叉樹遍歷找到某個節點的val是給出值,如果要返回的是以該節點為根節點的樹,那麼就是按照層級遍歷,這裡使用遞迴實現。如果找不到返回為空,如果找到返回該節點即可。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def searchBSTNodeList(self,rootList,val):
        if rootList == []:
            return None
        nextRootList = []
        for node in rootList:
            if node.val == val:
                return node
            else:
                if node.left != None:
                    nextRootList.append(node.left)
                if node.right != None:
                    nextRootList.append(node.right)
        return self.searchBSTNodeList(nextRootList,val)
                    
            
    def searchBST(self, root: TreeNode, val: int) -> TreeNode:
         return self.searchBSTNodeList([root],val)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2676302/,如需轉載,請註明出處,否則將追究法律責任。

相關文章