「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战」
给定一个二叉搜索树的 根节点 root
和一个整数 k
, 请判断该二叉搜索树中是否存在两个节点它们的值之和等于 k
。假设二叉搜索树中节点的值均唯一。
1 | makefile复制代码示例 1: |
来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/op…
思路
- 首先看到这道题,我们会想到最初的
LeetCode
的两数之和- 那么不妨来看一下
LeetCode
的第一题两数之和的思路
- 那么不妨来看一下
1 | java复制代码class Solution { |
1 | ini复制代码/** |
- 可以看到使用一个辅助的
map
进行存储- 所以对应二叉搜索树
- 我们可以一直往左子树进行遍历
- 一直进行存储左子树的节点,每次进行弹出的时候
- 再看
Set
中是否存在值为target - val
当然这道题也可以将二叉搜索树的性质发挥的淋漓尽致,可以将二叉搜索树看成一个排序的数组,再进行双指针操作
本文转载自: 掘金