代码随想录算法训练营day14|二叉树的遍历

  •  理论基础
  •  递归遍历  
  •  迭代遍历
  •  统一迭代

 理论基础 

需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义 

文章讲解:代码随想录

 递归遍历 (必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单 

题目链接/文章讲解/视频讲解:代码随想录

 迭代遍历 (基础不好的录友,迭代法可以放过)

题目链接/文章讲解/视频讲解:代码随想录

 统一迭代   (基础不好的录友,迭代法可以放过)

这是统一迭代法的写法, 如果学有余力,可以掌握一下

题目链接/文章讲解:代码随想录

二叉树节点的构造

struct TreeNode {
	int val;
	TreeNode* left;
	TreeNode* right;
	TreeNode(int x) :val(x),left(NULL),right(NULL){}
};

递归遍历

void traversal(TreeNode* cur, vector& vec) {
	if (cur == NULL) return;

	vec.push_back(cur->val);
	traversal(cur->left, vec);
	traversal(cur->right, vec);
}

接受二叉树遍历结果val

vector preorderTraversal(TreeNode* root) {
	vector result;
	traversal(root, result);
	return result;
}

前/中/后序遍历同理


迭代遍历

你可能感兴趣的:(代码随想录,算法)