给一个二叉查找树(Binary Search Tree)的前序遍历结果数组,打印出所有的叶子节点。-笔试面试资料

这是qklbishe.com第7263 篇笔试面试资料
提供答案分析,通过本文《给一个二叉查找树(Binary Search Tree)的前序遍历结果数组,打印出所有的叶子节点。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

给一个二叉查找树(Binary Search Tree)的前序遍历结果数组,打印出所有的叶子节点。

给一个二叉查找树(Binary Search Tree)的前序遍历结果数组,打印出所有的叶子节点。 甘毅辉
数组第一个是根,分割它
找到 分离左右子树的 index
如果最后的子树只剩下一个,那他就是叶子
#include <vector> #include <string> #include <iostream> using namespace std;  int findindex(int start, int end, vector<int>& a, int target) {     int i;     for (i = start; i <= end; ++i) {         if (a[i] > target) return i;     }     return i; }  void shit(int start, int end, vector<int>& a) {     // cout << start << end << endl;     if (start > end) return;     else if (start == end) {         cout << a[start] << " ";         return;     }     else {         int index = findindex(start+1, end, a, a[start]);         if (index <= end) {             shit(start+1, index-1, a);             shit(index, end, a);         }         else {             shit(start+1, index-1, a);         }              } }  int main() {     vector<int> gyh;     char c;     int t;     do {         scanf("%d", &t);         gyh.push_back(t);         scanf("%c", &c);     } while (c == ' ');     shit(0, gyh.size()-1, gyh); }

今天 15:24:13 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给一个二叉查找树(Binary Search Tree)的前序遍历结果数组,打印出所有的叶子节点。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情