当前位置:网站首页>LeetCode144. Preorder traversal of binary tree
LeetCode144. Preorder traversal of binary tree
2022-07-07 22:49:00 【Qingshan's green shirt】
Preorder traversal of two tree
List of articles
1. problem

2. Ideas
1. First, let's introduce root first traversal — According to the root - Left son - The right son traverses the whole binary tree in order
2. Recursive method 
3. Iterative method
Stack is not empty , One node per stack , Put it into the return array ! After a node is out of the stack, its right and left children enter the stack ( In order !)
3. Code implementation
(1) recursive
class Solution {
public:
void PreOrder(TreeNode*cur,vector<int>& vec)
{
if(cur == NULL)return;
vec.push_back(cur->val);// root visit !
PreOrder(cur->left,vec);// Left
PreOrder(cur->right,vec);// Right
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
PreOrder(root, result);
return result;
}
};
(2) iteration ( Utilization stack )
// Put the linear stack of binary tree nodes
class stack{
public:
//1. initialization
void InitStack(){
top = 0;
}
//2. Binary tree pointer stack
void Push(TreeNode *p){
stack[top++] = p;
}
//3. Bomb stack
void Pop(){
top--;
}
//4. Sentenced to empty
bool Empty() {
if (top == 0)return true;
return false;
}
//5. Take the top element of the stack
TreeNode* Top( ){
return stack[top-1];
}
private:
int top;
TreeNode *stack[512];
};
// Iterative method
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
stack st;
st.InitStack();// initialization
vector<int> result;
if(root == NULL) return result;
st.Push(root);// The root node is in the stack !
while(!st.empty())// Stack is not empty
{
TreeNode* node = st.Top();// The pointer points to the top node of the stack // in
st.Pop();// Out of the stack
result.push_back(node->val);
if(node->right) st.Push(node->right);// The right son enters the stack !( Empty nodes do not stack )
if(node->left) st.Push(node->left);// Left son into the stack !( Empty nodes do not stack )
}
return result; // The stack is empty. , end
}
};
边栏推荐
- How to quickly check whether the opening area ratio of steel mesh conforms to ipc7525
- Debezium系列之:源码阅读之SnapshotReader
- 如何选择合适的自动化测试工具?
- Customer case | China law network, through observing the cloud, greatly shortens the time of fault location
- Revit secondary development - wall opening
- 如何选择合适的自动化测试工具?
- Explain in detail the communication mode between arm A7 and risc-v e907 on Quanzhi v853
- UWA Q & a collection
- Revit secondary development - Hide occlusion elements
- 行测-图形推理-8-图群类
猜你喜欢

数字化转型:五个步骤推动企业进步

Force deduction - question 561 - array splitting I - step by step parsing

Application practice | the efficiency of the data warehouse system has been comprehensively improved! Data warehouse construction based on Apache Doris in Tongcheng digital Department

PKPM 2020 software installation package download and installation tutorial
![VTOL in Px4_ att_ Control source code analysis [supplement]](/img/7a/4ce0c939b9259faf59c52da2587693.jpg)
VTOL in Px4_ att_ Control source code analysis [supplement]

【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式

Select sort (illustration +c code)

行测-图形推理-7-相异图形类

Ni9185 and ni9234 hardware settings in Ni Max

Robot autonomous exploration series papers environment code
随机推荐
Revit secondary development - modify wall thickness
行测-图形推理-9-线条问题类
行测-图形推理-6-相似图形类
Debezium series: source code reading snapshot reader
Loki, the "open source star picking program", realizes the efficient management of harbor logs
Get the exact offset of the element
How to judge whether the input content is "number"
Kaggle-Titanic
筑起云端 “免疫”屏障,让你的数据有备无患
行测-图形推理-2-黑白格类
Unity technical notes (II) basic functions of scriptableobject
Common verification rules of form components -2 (continuously updating ~)
数字化转型:五个步骤推动企业进步
Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
Revit secondary development - cut view
OpenGL jobs - shaders
Blender exchange group, welcome to the water group ~
How to choose the appropriate automated testing tools?
Dayu200 experience officer MPPT photovoltaic power generation project dayu200, hi3861, Huawei cloud iotda
Px4 autonomous flight