标签:else 解题思路 png 特点 中序 binary turn 算法 span
题目描述:给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
解题思路:根据二叉搜索树的特点,对二叉搜索树进行中序遍历可以得到一个从小到达排列的列表,进而将该问题转换为“两数之和Ⅰ”,用双指针或者哈希表求解
因而这题的关键在于,二叉树中序遍历算法。
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def findTarget(self, root: TreeNode, k: int) -> bool: #先中序遍历 得到一个列表 tree_list = [] def inOrder(root): if root == None: return None inOrder(root.left) tree_list.append(root.val) inOrder(root.right) inOrder(root) #双指针 i = 0 j = len(tree_list)-1 while(i<j): if (tree_list[i]+tree_list[j] == k): return True elif (tree_list[i]+tree_list[j] < k): i += 1 else: j -= 1 return False
标签:else 解题思路 png 特点 中序 binary turn 算法 span
原文地址:https://www.cnblogs.com/shawn-young/p/12376655.html