本条微博地址
计算机考研刘财政
考研
#数据结构#
#玩转数据结构#
#玩转计算机组成原理#
#考研#
#计算机考研#
算法冲刺 每日一题 必背上分 【第二十八天: 二叉树的基本算法】
3、二叉树的后序遍历
// 递归后序遍历
void recursionPreorderTraversal(TreeNode root) {
if (root != null) {
recursionPreorderTraversal(root->left);
recursionPreorderTraversal(root->right);
printf(root.val + " ");
}
}
// 非递归后序遍历
void postorderTraversal(TreeNode root) {
Stack<TreeNode> treeNodeStack = new Stack<TreeNode>();
TreeNode node = root;
TreeNode lastVisit = root;
while (node != null || !treeNodeStack.isEmpty()) {
while (node != null) {
treeNodeStack.push(node);
node = node->left;
}
//查看当前栈顶元素
node = treeNodeStack.peek();
//如果其右子树也为空,或者右子树已经访问
//则可以直接输出当前节点的值
if (node.right == null || node.right == lastVisit) {
printf(node.val + " ");
treeNodeStack.pop();
lastVisit = node;
node = null;
} else {
//否则,继续遍历右子树
node = node->right;
}
}
}
本条微博地址
睡不醒一直很困的ytt
计算机二级都选择题根本看不懂
都是啥呀 二叉树太难了