7.09 二叉树的回溯 和 搜索二叉树

111 阅读1分钟

1 . 二叉树中和为某一值地路径(回溯)

[](剑指 Offer 34. 二叉树中和为某一值的路径 - 力扣(LeetCode))

0461.png

回溯算法的大致模版就是 ,用 for 循环遍历宽度(因为此题是二叉树,只有一个根结点 ,宽度为1 ,不用 for 循环) ,用递归遍历深度 。递归中 ,先 if 判断满足的情况 ,并进行处理收集结果 ,然后递归 ,递归的后面千万不要忘记 撤销处理结果

0462.png

2 . 二叉搜索树 :

遇见二叉搜索树 ,就要考虑 中序遍历 ,因为对于二叉搜索树 ,中序遍历的结果恰好是结点有序排列的结果 。所以一般二叉搜索树的题 ,都是先进行 中序遍历 ,获得有序结点的排列 ,再进行相关操作。如下

2 . 1 二叉搜索树与双向链表

[ ](剑指 Offer 36. 二叉搜索树与双向链表 - 力扣(LeetCode))

0463.png

分析 : 先用数组收集 结点的有序排列 ,再遍历数组处理问题 。

2 . 2 二叉搜索树的第 k 大结点

0464.png

分析 : 先用数组收集 结点的有序排列 ,然后直接返回数组的倒数第 k 个元素 。