
每天学习一点点
文章平均质量分 77
sixgodtwo
这个作者很懒,什么都没留下…
展开
-
用栈来实现深度优先搜索
栈 栈是一种后入先出(LIFO)的数据结构。可以把栈想象成一个羽毛球桶,只有一个开口,最先放进去的羽毛球会在最里面,而最后放进去的羽毛球会在最外面。当我们拿出羽毛球时会先从最外面开始拿,也就是拿的最后放入的羽毛球。 用栈来完成二叉树的三种遍历 以下练习题均来自于leetcode 二叉树的前序遍历 思路:用数组来替代栈,首先是根节点入栈。从栈里面取出一个元素,用一个指针指向这个元素,只要这个元素不为空,就一直指向这个元素的左节点,路上挨个输出节点的字,碰到右节点不为空的时候就把右节点压入栈里。一直循环到栈里原创 2021-08-26 21:15:33 · 2109 阅读 · 1 评论 -
深度优先搜索
深度优先搜索 我的理解 深度优先搜索就是,前方有可选择的路,就一直往前走,知道没有路或只有走过的路为止再原路返回。一直返回到出现了未走过的路,再继续顺着这条路走下去,如此往复,一直走到终点为止。 练习 以下题目均来源于leetcode 二叉树的最大深度 思路:使用深度优先搜索,分别遍历左右子树,每往下一层,深度就+1,直到遇到NULL为止。 /** * Definition for a binary tree node. * struct TreeNode { * int val; *原创 2021-08-25 22:11:36 · 137 阅读 · 0 评论