今天的新的需求又来了,很基础
给你一段数组,建一棵二叉树
是不是很眼熟?之前是不是有一段类似的需求?二叉树还原?但是很遗憾的告诉你,这次的思路跟上次完全不一样
上次的二叉树之所以建的这么快,是因为有先序和中序遍历的铺垫,所以直接根据数组写就好了,这次只给了一组数组,我们需要对整个数组依次进行遍历处理。所以这次的思路是啥?
首先,拿到根节点,因为最后要返回根节点,所以必须在循环外拿到它
然后用一个队列进行处理,分为两步走:
1.将队列的元素出列
2.将新的元素入列
然后while(队列 != 空)为止。
这次算法我的误区就在于,没有想到将根元素先入队列,我总是想着对根节点以外的数加入树,但是因为根节点不能进循环,所以卡住了,现在通过一定的思考,我已经成功解决了需求,以下是代码:
每天一个,提神醒脑,明天见!
网友评论