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

您在真实的面试中是否遇到过这个题?

Yes
样例

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

   1
\
2
/
3

返回 [3,2,1]

思路:二叉树的后序遍历,简单题目,递归方法,要很快撸出来,非递归方法也要熟悉;
           后序遍历:左->右->根

注意,注意,注意! 递归的时候一定要注意定义的变量是否会在每次递归时重新定义;

/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
/**
* @param root: The root of binary tree.
* @return: Postorder in vector which contains node values.
*/
/*
二叉树的后序遍历,简单题目,递归方法,要很快撸出来,非递归方法也要熟悉;
后序遍历:左->右->根
注意,注意,注意! 递归的时候一定要注意定义的变量是否会在每次递归时重新定义;
*/
public: vector<int> vec;
vector<int> postorderTraversal(TreeNode *root) {
// write your code here
if(root==NULL){
return vec;
}
if(root->left!=NULL){
postorderTraversal(root->left);
} if(root->right!=NULL){
postorderTraversal(root->right);
} vec.push_back(root->val); return vec; }
};

给出一棵二叉树,返回其中序遍历

您在真实的面试中是否遇到过这个题?

Yes
样例

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

   1
\
2
/
3

返回 [1,3,2].

思路: 中序遍历:左->根->右

非递归方法,也要熟悉;

/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
/**
* @param root: The root of binary tree.
* @return: Inorder in vector which contains node values.
*/
/*
用递归的方法,二叉树中序遍历,简单题目;
中序遍历:左->根->右
非递归方法,也要熟悉;
*/
public:
vector<int> vec;
vector<int> inorderTraversal(TreeNode *root) {
// write your code here if(root==NULL){
return vec;
} if(root->left!=NULL){
inorderTraversal(root->left);
}
vec.push_back(root->val); if(root->right!=NULL){
inorderTraversal(root->right);
} return vec;
}
};

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

您在真实的面试中是否遇到过这个题?

Yes
样例

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

   1
\
2
/
3

返回 [1,2,3].

思路:简单题,递归方法要在五分钟内快速正确的撸出来;

先序遍历:根->左->右

/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/ class Solution {
public:
/**
* @param root: The root of binary tree.
* @return: Preorder in vector which contains node values.
*/
/*
简单题,递归方法要在五分钟内快速正确的撸出来;
先序遍历:根->左->右
*/ vector<int> vec;
vector<int> preorderTraversal(TreeNode *root) {
// write your code here
if(root==NULL){
return vec;
} vec.push_back(root->val); if(root->left!=NULL){
preorderTraversal(root->left);
} if(root->right!=NULL){
preorderTraversal(root->right);
} return vec;
}
};

Lintcode---二叉树的前序、中序、后序遍历的更多相关文章

  1. 分别求二叉树前、中、后序的第k个节点

    一.求二叉树的前序遍历中的第k个节点 //求先序遍历中的第k个节点的值 ; elemType preNode(BTNode *root,int k){ if(root==NULL) return ' ...

  2. 算法进阶面试题03——构造数组的MaxTree、最大子矩阵的大小、2017京东环形烽火台问题、介绍Morris遍历并实现前序/中序/后序

    接着第二课的内容和带点第三课的内容. (回顾)准备一个栈,从大到小排列,具体参考上一课.... 构造数组的MaxTree [题目] 定义二叉树如下: public class Node{ public ...

  3. 二叉树 遍历 先序 中序 后序 深度 广度 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. 前序+中序->后序 中序+后序->前序

    前序+中序->后序 #include <bits/stdc++.h> using namespace std; struct node { char elem; node* l; n ...

  5. SDUT OJ 数据结构实验之二叉树八:(中序后序)求二叉树的深度

    数据结构实验之二叉树八:(中序后序)求二叉树的深度 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Probl ...

  6. SDUT-2804_数据结构实验之二叉树八:(中序后序)求二叉树的深度

    数据结构实验之二叉树八:(中序后序)求二叉树的深度 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 已知一颗二叉树的中序 ...

  7. 给出 中序&后序 序列 建树;给出 先序&中序 序列 建树

    已知 中序&后序  建立二叉树: SDUT 1489 Description  已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历 Input  输入数据有多组,第一行是一个整数t (t& ...

  8. 【C&数据结构】---关于链表结构的前序插入和后序插入

    刷LeetCode题目,需要用到链表的知识,忽然发现自己对于链表的插入已经忘得差不多了,以前总觉得理解了记住了,但是发现真的好记性不如烂笔头,每一次得学习没有总结输出,基本等于没有学习.连复盘得机会都 ...

  9. 【11】-java递归和非递归二叉树前序中序后序遍历

    二叉树的遍历 对于二叉树来讲最主要.最基本的运算是遍历. 遍历二叉树 是指以一定的次序访问二叉树中的每个结点.所谓 访问结点 是指对结点进行各种操作的简称.例如,查询结点数据域的内容,或输出它的值,或 ...

  10. js二叉树,前序/中序/后序(最大最小值,排序)

    function Node(data,left,right) { this.left=left this.right=right this.data=data } function Btr() { t ...

随机推荐

  1. C - 壮志难酬

    #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { ]= {'}; int i ...

  2. Excel | 如何用Excel实现证件照底色调换

    这段时间因为一些事情需要用到证件照这个东西,大家应该都清楚,不管是简历还是各种考试上面,都需要贴上一张规规矩矩的证件照片或是上传电子照片. 通常,我们到照相馆照证件照的时候,无外乎红底.蓝底以及白底这 ...

  3. CF 256C Furlo and Rublo and Game【博弈论,SG函数】

    暴力的求SG函数会超时,正解是先处理出10^6以内的SG值,对于更大的,开根号之后计算出. 小数据观察可以发现sg函数值成段出现,而且增长速度很快,因此可以计算出来每一段的范围,只需打表即可. Nim ...

  4. [译]SQL数据库迁移:从低版到高版本

    我见过太多的数据库管理员花大量的时间在数据库迁移上,即便在客户的实际环境亦是如此.由于微软频繁的发布新版,基于业务和客户的要求,应用服务不得不同时升级.当然,还有许多用户仍在使用SQL Server ...

  5. 这些年,我们一直追随的.NET

    闲来无事,浏览自己的QQ空间,意外发现自己在13年1月份的发在QQ空间写的一片关于技术的随笔,觉得应该将其移到这里: 这些年,我们一直追随的.NET        前两天,意外地看到了.NET平台为异 ...

  6. pycharm的插件pylint报错:java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. Please ensure you're using invokeLater/invokeAndWait with a correct modality stat

    java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. ...

  7. sql server 判断及增加列的默认值约束

    IF NOT EXISTS ( SELECT name FROM sysobjects WHERE id = ( SELECT syscolumns.cdefault FROM sysobjects ...

  8. [转]SSIS error DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER when connecting to Oracle data source

    本文转自:http://blogs.msdn.com/b/jorgepc/archive/2008/02/12/ssis-error-dts-e-cannotacquireconnectionfrom ...

  9. c++类模板template中的typename使用方法-超级棒

    转载:https://blog.csdn.net/vanturman/article/details/80269081 如有问题请联系我删除: 目录 起因 typename的常见用法 typename ...

  10. 一步一步学RenderMonkey(3)——改良Phong光照模型 【转】

    转载请注明出处: http://blog.csdn.net/tianhai110 改良后的Phong光照模型: 上一节实现的phong镜面光照模型,如果固定光源,移动视点(及matView 关联为ma ...