(二叉树 递归) leetcode 144. Binary Tree Preorder Traversal
2024-08-26 15:37:18
Given a binary tree, return the preorder traversal of its nodes' values.
Example:
Input:[1,null,2,3]
1
\
2
/
3 Output:[1,2,3]
Follow up: Recursive solution is trivial, could you do it iteratively?
-----------------------------------------------------------------------------------------------------------
二叉树的前序遍历(preorder traversal)。emmm,虽然题目要求用非递归,但是,我现在先用递归来写(简单)。emmmm,只要理解透递归的含义,解决这个问题是异常的简单。
C++代码:递归代码1:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> vec;
DFS(root,vec);
return vec;
}
void DFS(TreeNode* root,vector<int>& vec){
if(!root) return;
vec.push_back(root->val);
if(root->left) DFS(root->left,vec);
if(root->right) DFS(root->right,vec);
}
};
递归代码2:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> vec; //这个vec必须放在外面。否则,如果在里面的话,在这个样例中最后只得到一个含有一个数的数组。
vector<int> preorderTraversal(TreeNode* root) {
if(!root) return vec;
vec.push_back(root->val);
preorderTraversal(root->left);
preorderTraversal(root->right);
return vec;
}
};
最新文章
- 当我们在谈论kmeans(1)
- CAS示例环境部署及配置
- python元类
- ios取证
- IGF职业组比赛
- LeetCode42 Trapping Rain Water
- Linux 动画显示
- SQLServer优化资料整理(一)
- nodejs学习随机记录
- 关于twitter的GIF变mp4的测试
- Python全栈开发第13天
- DATA VISUALIZATION – PART 1
- Eclipse debug 调试快捷键
- JS 获取字符串实际长度
- Hibernate 相关配置
- Robot Framework安装及配置
- XML 和 JSON
- VirtualBox中slitaz系统不能联网
- 关于ECMP 等价路由
- 串、串的模式匹配算法(子串查找)BF算法、KMP算法