文章 2023-11-14 来自:开发者社区

【C++从0到王者】第三十站:二叉树的非递归遍历

一、前序遍历非递归力扣链接:力扣第144题:前序遍历解析:我们的思路是这样的:递归的本质其实就是一层一层的栈帧。我们要使用非递归,就得模拟这种栈帧,所以我们需要一个栈。这个栈专门存储结点,我们可以定义一个cur指针,先让他指向root。由于是先序遍历,所以我们需要将cur的所有左树结点都直接存入栈里面,并且我们还要顺便将里面的值给放入数组中,然后接下来我们就取出栈顶的结点,然后让cur指向右子树....

文章 2023-02-08 来自:开发者社区

【C++】非递归实现二叉树的前中后序遍历

二叉树的前序遍历前序遍历的顺序是根、左子树、右子树。那么首先访问的一定是左路节点,再来访问左路节点的右子树。而访问左路节点的右子树又可以看成一个子问题,那么就能像递归访问整棵树了。思路:想定义一个栈st、一个vector v和一个TreeNode* cur,cur初始化为root。当cur不为空或者st不为空时,while继续。while循环里做一下操作:左路节点入栈的同时尾插到v中,那么左路节....

【C++】非递归实现二叉树的前中后序遍历

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等