当前位置:网站首页>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
}
};
边栏推荐
- Unity technical notes (I) inspector extension
- 0-5VAC转4-20mA交流电流隔离变送器/转换模块
- 苹果在iOS 16中通过'虚拟卡'安全功能进一步进军金融领域
- C # Development -- pit encountered in JS intermodulation
- How to judge whether the input content is "number"
- Attitude estimation (complementary filtering)
- Unity development --- the mouse controls the camera to move, rotate and zoom
- Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
- ASP. Net core introduction V
- Loki, the "open source star picking program", realizes the efficient management of harbor logs
猜你喜欢
Apple further entered the financial sector through the 'virtual card' security function in IOS 16

Quick sort (diagram +c code)

Loki, the "open source star picking program", realizes the efficient management of harbor logs

Record a garbled code during servlet learning

0-5vac to 4-20mA AC current isolated transmitter / conversion module

新版代挂网站PHP源码+去除授权/支持燃鹅代抽

Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb

Gazebo import the mapping model created by blender

What does it mean to prefix a string with F?

详解全志V853上的ARM A7和RISC-V E907之间的通信方式
随机推荐
The essence of analog Servlet
Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
Use partial derivatives to display normals in unity
OpenGL configure assimp
How to choose the appropriate automated testing tools?
微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈
Visual studio 2019 installation
[environment] pycharm sets the tool to convert QRC into py file
Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb
微服务架构开源框架详情介绍
IP network active evaluation system -- x-vision
Cataloger integrates lidar and IMU for 2D mapping
[azure microservice service fabric] start the performance monitor in the SF node and set the method of capturing the process
Revit secondary development - project file to family file
Micro service remote debug, nocalhost + rainbow micro service development second bullet
23. Merge K ascending linked lists -c language
Select sort (illustration +c code)
OpenGL configuration vs2019
行测-图形推理-8-图群类
De la famille debezium: SET ROLE statements supportant mysql8