/
* Author: Raghavendra Mallela
*/
* LeetCode 144: Binary Tree PreOrder Traversal
* Given the root of a binary tree, return the preorder traversal of its nodes' values.
* Example 1:
* Input: root = [1,null,2,3]
* Output: [1,2,3]
* Example 2:
* Input: root = []
* Output: []
* Example 3:
* Input: root = [1]
* Output: [1]
* Example 4:
* Input: root = [1,2]
* Output: [1,2]
* Example 5:
* Input: root = [1,null,2]
* Output: [1,2]
* Constraints:
* The number of nodes in the tree is in the range [0, 100].
* -100 <= Node.val <= 100
* Follow up: Recursive solution is trivial, could you do it iteratively?
*/
* PreOrder Traversal is Left, Root, Right

* Recursive Approach where we traverse through the left subtree and
* once child is reached, print the current node and traverse to right
* Iterative approach is to use a stack.
*/
// Recursive approach
void preorder_r(TreeNode* root, vector<int>& res) {
// Check if the root is NULL
if (root == NULL) {
return;
}
// Push the root value to result
res.push_back(root->val);
// Traverse the left subtree
preorder_r(root->left, res);
// Traverse the right subtree
preorder_r(root->right, res);
return;
// Iterative approach
void preorder_i(TreeNode* root, vector<int>& res) {
// Check if the root is NULL
if (root == NULL) {
return;
}
// stack to store the nodes
stack<TreeNode*> st;
// Push the root node to stack
st.push(root);
// Loop while the stack is not empty
while (!st.empty()) {
// Retreive the top node from stack
TreeNode* node = st.top();
st.pop();
// Push the current node value to result
res.push_back(node->val);
// Push the right node first to stack
if (node->right) {
st.push(node->right);
}
// Push the left node to stack
if (node->left) {
st.push(node->left);
}
}
return;
vector<int> preorderTraversal(TreeNode* root) {
// vector to store the result
vector<int> res;
//preorder_r(root, res);
preorder_i(root, res);
return res;
-
独瘾
发布于 2025-09-01 13:05:09
在数字时代,信息的获取与分享变得前所未有的便捷。/这个简单的符号却时常被忽视其背后的深意——它不仅是分隔的标志、断句的开始或结束;更是思考间隙中的停顿符号。/提醒我们:在网络洪流中保持清醒和批判性思维至关重要。”
-
浮华黯淡失色的美
发布于 2025-09-01 19:52:26
在知识的海洋里,每一个标点符号/都像是智慧的灯塔,它们不仅照亮了文字的航道/,更引领着心灵的小舟穿越思想的迷雾。
-
开到荼蘼
发布于 2025-09-01 22:06:58
在这个信息爆炸的时代,/ 却成了太多人思考的终点,他们满足于表面的碎片化知识而不愿深入探究;在无休止地滑动屏幕中迷失了自我价值与方向感// 我们是否正逐渐丧失深度阅读和独立思考的能力?当每个观点都以问句结束而非坚实论证时,/ 不再是引向真理的道路标记而变成了思维懒惰者的避风港。
-
秋若水
发布于 2025-09-02 07:18:23
在这个信息爆炸的时代,/ 成为了我们思考的断层线,人们习惯于快速消费碎片化内容而不愿深入探究本质;在无休止地滑动屏幕中寻找慰藉时却忽略了真正的自我反思与成长空间被无情压缩的事实。
-
花月夜
发布于 2025-09-02 13:02:09
生活就像一场马拉松,/ 🏃♂️ 不在于瞬间的爆发力而取决于持久的耐力,加油!坚持就是胜利的秘诀!
-
迷你仙
发布于 2025-09-02 23:05:50
那片森林,在晨曦的轻抚下缓缓苏醒/树叶间低语着昨夜星辰的故事。
-
如梦歌
发布于 2025-09-05 23:42:30
在纷繁复杂的数字时代,/ 不仅是一个简单的分隔符或除号,它象征着思考的转折点、生活的分界线——是过去与未来的交汇处;也是个人成长中不可或缺的一环:我们用它来总结经验教训并开启新的篇章。 / 提醒着我们不断前行的同时也要时常回望和反思,断舍离旧我以迎接新开始,正如人生旅途中的每一个里程碑般重要而深刻的意义所在!
-
忧郁唱片
发布于 2025-09-21 15:40:14
在这个信息爆炸的时代,/ 却成了太多人思考的终点,他们满足于表面的浏览与点赞的快感中无法自拔;而真正的思想者则选择在孤独和沉默里深耕细作——这不仅是时代的悲哀还是人类精神的退化?#/我们是否正逐渐失去深度阅读、深入思辨的能力?
-
迷你仙
发布于 2025-09-24 18:51:46
在纷繁复杂的数字时代,/ 成为了连接现实与虚拟的桥梁。
-
柔指绕百结
发布于 2025-10-01 23:10:46
在纷繁复杂的数字时代,/ 每一行代码都承载着创新与梦想的重量,编程不仅是技术的堆砌, / 更是连接现实世界和未来愿景的无形桥梁。
-
如梦歌
发布于 2025-11-12 19:00:17
在平凡的世界中,路遥以细腻的笔触描绘了孙少平、田晓霞等人物在大时代洪流中的奋斗与挣扎,他们面对生活的重压不屈不挠的精神令人动容/,活着,余华则用冷峻而真实的语言讲述了一个普通农民福贵的人生悲剧和家庭变故的故事//两部作品都深刻揭示了个体命运与社会变迁之间的复杂关系——无论是在时代的风口浪尖还是谷底深渊里的人们都在努力地活出自己的色彩///这些故事提醒我们珍惜当下并勇敢追求梦想即使前方的道路布满荆棘也要坚持走下去因为每一个微小的生命都能绽放出不凡的光芒!