【LeetCode】Binary Tree Preorder Traversal

来源:互联网 发布:mac硬盘清理工具 编辑:程序博客网 时间:2024/05/29 13:37


题目描述

http://oj.leetcode.com/problems/binary-tree-preorder-traversal/


Binary Tree Preorder Traversal

 

Given a binary tree, return the preorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},

   1    \     2    /   3

return [1,2,3].

Note: Recursive solution is trivial, could you do it iteratively?

题目分析

递归方法:
这个方法简单,只要按照 自己-> 右儿子 -> 左儿子的顺序就可以了

非递归法,开始时根结点在栈中,然后
{
栈顶输弹出
如果有右儿子,右儿子入栈
如果有左儿子,左儿子入栈
}
这样循环,直到栈为空。栈顶一直是下一个要打印的根结点。

总结

这个是在写完后序后写的,就容易多了,尤其在非递归法上,比后序容易多,可以先输入根结点用栈还是比较方便的。


示例代码




推荐学习C++的资料

C++标准函数库
http://download.csdn.net/detail/chinasnowwolf/7108919
在线C++API查询
http://www.cplusplus.com/


0 0