【题目描述】
Given a binary tree, return all root-to-leaf paths.
给一棵二叉树,找出从根节点到叶子节点的所有路径。
【题目链接】
www.lintcode.com/en/problem/binary-tree-paths/
【题目解析】
本题属于二叉树的遍历问题,可以用深度优先搜索来解决。
使用栈来记录遍历过程中访问过的节点。递归地访问每个节点的子节点,如果遇到叶节点,则输出记录的路径。返回上一层之前弹出栈顶元素。 C++的vector容器也能做到后进先出,所以下面的代码并没有使用std::stack类来实现。
生成输出的字符串时,可以使用std::stringstream类来完成,类似于Java和C#中的StringBuilder。
【参考答案】
网友评论