144. 二叉树的前序遍历 144. Binary Tree Preorder Traversal 题目描述 给定一个二叉树,返回它的 前序 遍历. LeetCode144. Binary Tree Preorder Traversal 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? Java 实现 Iterative Solution import java.util.LinkedList; import…
144. 二叉树的前序遍历 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { publi…
前往二叉树的:前序,中序,后序 遍历算法 方法一:递归 vector<int> res; vector<int> preorderTraversal(TreeNode* root) { if (!root) return res; res.push_back(root->val); if (root->left) preorderTraversal(root->left); if (root->right) preorderTraversal(root-&g…
题目描述 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解题思路 由于前序遍历的顺序是父节点->左孩子->右孩子,所以在遍历到某节点时,先输出该节点值,然后把该节点的右孩子入栈,接着访问左孩子,若左孩子为空,则访问栈顶结点. 代码 /** * Definition for a binary tree node. * struct TreeNode { * int…
1.题目描述 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2.解法一:递归 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NUL…
题目链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/ 给定一个二叉树,返回它的 前序 遍历. /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL)…
1. 题目 2. 解答 2.1. 递归法 定义一个存放树中数据的向量 data,从根节点开始,如果节点不为空,那么 将当前节点的数值加入到 data 中 递归得到其左子树的数据向量 temp,将 temp 合并到 data 中去 递归得到其右子树的数据向量 temp,将 temp 合并到 data 中去 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeN…
LeetCode:二叉树的前序遍历[144] 题目描述 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 题目分析 如果用递归代码的话,很简单,先序遍历,就是先遍历当前节点,接着是左孩子然后是右孩子,到每个孩子都是这样的处理过程. public void preorder(TreeNode root,List<Integer> res) { if(root==null) return; res.add(root.val…
144. 二叉树的前序遍历 知识点:二叉树:递归:Morris遍历 题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历. 示例 输入:root = [1,null,2,3] 输出:[1,2,3] 输入:root = [] 输出:[] 输入:root = [1] 输出:[1] 输入:root = [1,2] 输出:[1,2] 输入:root = [1,null,2] 输出:[1,2] 解法一:递归 /** * Definition for a binary tree node.…
给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 二叉树的前序遍历有递归和非递归两种做法. 在介绍这两种方法之前,我首先介绍下,二叉树如何建立 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x):val(x),left(NULL),right(NULL) {} }; vo…