1 题目

求给定的二叉树的前序遍历。

2 解法

2.1 递归解法

2.2 非递归解法

前序遍历,先遍历根节点,然后遍历左节点,最后是右节点,所以用栈的方式,先是根节点入栈,然后出栈遍历,如果该节点有左右节点,那么左右节点入栈(应为右节点先入栈,然后是左节点,因为左节点先遍历,所以是左节点后入栈).

/*** struct TreeNode {*  int val;*   struct TreeNode *left;* struct TreeNode *right;* };*/class Solution {
public:/*** * @param root TreeNode类 * @return int整型vector*/vector<int> preorderTraversal(TreeNode* root) {// write code herevector<int> res;if (root != nullptr) {stack<TreeNode*> tS;tS.push(root);while (!tS.empty()) {TreeNode* tN = tS.top();tS.pop();res.push_back(tN->val);if (tN->right != nullptr)tS.push(tN->right);if (tN->left != nullptr)tS.push(tN->left);}}return res;}
};

leetcode 144 --- 二叉树前序遍历相关推荐

  1. C语言二叉树前序遍历(附完整源码)

    C语言二叉树前序遍历 C语言二叉树前序遍历完整源码(定义,实现,main函数测试) C语言二叉树前序遍历完整源码(定义,实现,main函数测试) #include <iostream>st ...

  2. 二叉树前序遍历执行过程

    二叉树前序遍历执行过程 前序遍历:根-左-右 图示 记录与总结,2021年 11月 12日 星期五 11:35:14 CST.

  3. 二叉树前序遍历(递归法和迭代法(即非递归法))——C++

    声明:本文原题主要来自力扣力扣,记录此博客主要是为自己学习总结,不做任何商业等活动 本文主要讲解二叉树的前序遍历递归法和迭代法.中序遍历和后序遍历可以参考博主下面两篇博客:二叉树中序遍历(递归法和迭代 ...

  4. C++实现的二叉树前序遍历函数

    #include <iostream> using namespace std;struct TreeNode {int val;TreeNode* left;TreeNode* righ ...

  5. 二叉树前序遍历-迭代

    二叉树的前序遍历 对于一颗二叉树,当遍历它的时候使用 递归总是轻而易举的. 这是二叉树前序遍历-使用递归 public void preorderTraversal(TreeNode root){if ...

  6. 用Java实现二叉树前序遍历、中序遍历和后序遍历。

    用Java实现二叉树前序遍历.中序遍历和后序遍历. 解析: public class Tree {private int data; /* 数据节点 */private Tree left; /* 左 ...

  7. 树(二叉树层次遍历输出及二叉树前序遍历输入)

    前两篇解释了二叉树的有关逻辑概念及前中后序输出递归代码的实现,这篇将讲述二叉树层次遍历输出如何实现以及二叉树前序遍历输入的两种情况. 定义结构体 struct BiNode{char data;BiN ...

  8. 二叉树前序遍历与后序遍历

    二叉树 前序遍历 递归 借助栈进行排序 先将根节点压栈 栈不为空,如果存在根节点,先右后左. 弹栈打印.直至栈为空 package com.vitamin.tree;import java.util. ...

  9. 顺序二叉树---实现数组的二叉树前序遍历输出

    特点: 1.顺序二叉树只考虑完全二叉树 2.第n个元素的左子节点为2*n+1 3.第n个元素的右子节点为2*n+2 4.第n个元素的父节点为(n-1)/2 代码: /** 给你一个数组,要求以二叉树前 ...

最新文章

  1. CRM中Plugin开发如何将功能放入多个模块
  2. C语言用char数组存储一串整数时的一个陷阱
  3. linux nc命令用法举例
  4. IIS 错误代码分析手册
  5. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?
  6. 用Python快速找到出现次数最多的数据
  7. markdown 本地链接_Markdown从入门到入坑
  8. 向爸爸借了500,向妈妈借了500,买了双皮鞋用了970。剩下30元,还爸爸10块,还妈妈10块,自己剩下了10块,欠爸爸490,欠妈妈490,490+490=980。加上自己的10块=990。还有1
  9. Openstack Nova network
  10. android框架揭秘!Android开发者跳槽指南一线互联网公司面经总结
  11. jmeter教程https://max.book118.com/html/2019/0108/6145005114002000.shtm
  12. NVIDIA ShadowPlay、Record、Highlights的区别
  13. opencv视频拼接 opencv视频拼接优化
  14. pdn阻抗测试_非常详细的阻抗测试基础知识
  15. 决策树系列之一决策树的入门教程
  16. xheditor form java_xheditor 上传图片 Jfinal处理 出现异常
  17. 数据技术之Hadoop(HFDS文件系统)
  18. 20172319 《程序设计与数据结构》第11周学习总结
  19. git 移除项目版本控制_Git - 关于版本控制
  20. android okgo参数,android okgo post传数组

热门文章

  1. 怎么用python编写个apk_新手用tkinter写了一个APK提取工具
  2. C++ 函数返回char*
  3. C语言定义外部文件可使用的结构体和结构体变量
  4. 数字签名,数字证书,证书链原理
  5. C++学习之路 | PTA乙级—— 1078 字符串压缩与解压 (20 分)(精简)
  6. 曲线均匀分布_曲线篇:深刻理解B 样条曲线(下)
  7. %3c php foreach%3e,PHP 数组函数-数组排序
  8. Python格式化输出方法
  9. [记录] --- safari浏览器对于yyyy-MM的坑
  10. 查看函数库.a函数符号信息