博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的前序遍历
阅读量:5098 次
发布时间:2019-06-13

本文共 1178 字,大约阅读时间需要 3 分钟。

给出一棵二叉树,返回其节点值的前序遍历。

样例

给出一棵二叉树 {1,#,2,3},

1    \     2    /   3

 返回 [1,2,3]

挑战 

你能使用非递归实现么?

标签 
递归 二叉树 二叉树遍历 非递归
 
递归实现:
1 /** 2  * Definition of TreeNode: 3  * class TreeNode { 4  * public: 5  *     int val; 6  *     TreeNode *left, *right; 7  *     TreeNode(int val) { 8  *         this->val = val; 9  *         this->left = this->right = NULL;10  *     }11  * }12  */13 14 class Solution {15 public:16     vector
s;17 /**18 * @param root: The root of binary tree.19 * @return: Preorder in vector which contains node values.20 */21 22 vector
preorderTraversal(TreeNode *root) {23 // write your code here24 if(root==NULL)25 return s;26 if(root!=NULL)27 {28 s.push_back(root->val);29 preorderTraversal(root->left);30 preorderTraversal(root->right);31 return s;32 }33 }34 };
View Code

一开始写这玩意,一直把vector写在函数里面,怎么都过不了。

原因是递归调用每一次都会重新定义一次,最后的返回值只会有一个。

然后百度了半天怎么样才可以在递归调用的时候,怎样才可以不被重新定义,然而都没有成功。最后百度到一篇是直接写在外面就AC了。真的好气,好蠢。

怎么就没想到写在外面呢。

非递归实现的有空在做一做。

转载于:https://www.cnblogs.com/97-ly/p/6843321.html

你可能感兴趣的文章
ZROI2018暑期集训B班训练赛#1解题报告
查看>>
ListIterator
查看>>
HDU 2855 Fibonacci Check-up 矩阵
查看>>
Matlab使用xlsread, xlswrite函数导致excel进程无法终止的问题
查看>>
scrapy爬取数据的基本流程及url地址拼接
查看>>
Python 生产者和消费者模型
查看>>
GLSL中 Billboard和Point的顶点空间变换
查看>>
Fiddler基本用法:手机抓包
查看>>
poj 1328 Radar Installation 排序贪心
查看>>
数组与字符串 1.6
查看>>
信用卡还款项目(同事封装的ajax)
查看>>
java基本概念
查看>>
Struts2学习笔记(六) 结果(Result)(上)
查看>>
ajax提交写法
查看>>
Java编程语言基础 第三章 if嵌套分支用法
查看>>
判断质数的方法
查看>>
安全和共享设置
查看>>
树链剖分
查看>>
python常用模块(一)
查看>>
css例子
查看>>