面试题23:二叉树中和为某一值的路径
来源:互联网 发布:淘宝文案范文 编辑:程序博客网 时间:2024/05/22 09:31
代码:
#include "stdafx.h"#include <iostream>#include <vector>using namespace std;struct BinaryTreeNode{int m_nValue;BinaryTreeNode *m_pLeft;BinaryTreeNode *m_pRight;};void FindPath(BinaryTreeNode *pRoot, int nSum, vector<int>& path){if (pRoot == NULL || nSum == 0){return;}if (pRoot->m_nValue == nSum && pRoot->m_pLeft == NULL && pRoot->m_pRight == NULL){ vector<int>::iterator iter = path.begin(); for (; iter!=path.end(); iter++) { cout << *iter << " "; } cout << pRoot->m_nValue << endl; return; }path.push_back(pRoot->m_nValue);if (pRoot->m_pLeft != NULL){FindPath(pRoot->m_pLeft, nSum-pRoot->m_nValue, path);}if (pRoot->m_pRight != NULL){FindPath(pRoot->m_pRight, nSum-pRoot->m_nValue, path);}path.pop_back();}//以先序的方式构建二叉树,输入#表示结点为空void CreateBinaryTree(BinaryTreeNode *&pRoot){int nNodeValue = 0;cin >> nNodeValue;if (-1 == nNodeValue){pRoot = NULL;return; }else{pRoot = new BinaryTreeNode();pRoot->m_nValue = nNodeValue;CreateBinaryTree(pRoot->m_pLeft);CreateBinaryTree(pRoot->m_pRight);}}void PrintInOrder(BinaryTreeNode *&pRoot){if (pRoot != NULL){PrintInOrder(pRoot->m_pLeft);cout << pRoot->m_nValue << " ";PrintInOrder(pRoot->m_pRight);}}int _tmain(int argc, _TCHAR* argv[]){BinaryTreeNode *pRoot = NULL;CreateBinaryTree(pRoot);PrintInOrder(pRoot);cout << endl;vector<int> path;FindPath(pRoot, 22, path);system("pause");return 0;}说明:用vector模拟实现栈的功能,而不是用stack,是因为在输出路径时,需要遍历栈中的元素,而stack只能取栈顶元素,stack不是最好的选择
- 面试题23:二叉树中和为某一值的路径
- 【面试题23】二叉树中和为某一值的路径
- 二叉树经典面试题6~二叉树中和为某一值的路径
- 【IT笔试面试题整理】二叉树中和为某一值的路径--所有可能路径
- 面试题04 - 二叉树中和为某一值的所有路径 [树]
- 面试题25:二叉树中和为某一值的路径
- 面试题25:二叉树中和为某一值的路径
- 【面试题二十五】二叉树中和为某一值的路径
- 【剑指offer】面试题25:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径(面试题 25)
- 剑指Offer:面试题25 二叉树中和为某一值的路径
- 面试题25 二叉树中和为某一值的路径
- 剑指offer 面试题25 求二叉树中和为某一路径的值
- [程序员面试题精选100题]4.二叉树中和为某一值的所有路径
- 《剑指Offer》面试题25:二叉树中和为某一值的路径
- 剑指offer 面试题25—二叉树中和为某一值的路径
- 面试题25:二叉树中和为某一值的路径
- 剑指offer--面试题25:二叉树中和为某一值的路径--Java实现
- ios本地通知UILocalNotification
- vb 检测进程是否存在
- 安卓开发-cursor adapter
- python 输入输出
- cocos2d-x autorelease 内存管理机制介绍
- 面试题23:二叉树中和为某一值的路径
- navigationController.navigationBar 设置背景透明
- Hadoop书籍和网络资源介绍
- hdu 2059 龟兔赛跑
- Android仿人人客户端(v5.7.1)——消息中心视图的实现
- 數據庫版本控制
- java学习指导(转载)
- Extjs 获取 radiogroup 选中项的值
- Generate Parentheses