二叉树本身就是递归结构,因此可以用栈来简化操作。
一、层次遍历
关键点:判断当前层的遍历是否结束(使用Null标志符来判断)
算法思路:
1、在根结点后加入Null标志符
2、pop第一个结点出来,进行判断,1)若该结点不为空,则把左右孩子结点append进来,2)若为空(此处else可以省略),进一步判断q是否为空,1.1)不为空,还有结点,遍历未结束,则append标志符,depth++,1.2)为空证明遍历结束。
二叉树本身就是递归结构,因此可以用栈来简化操作。
一、层次遍历
关键点:判断当前层的遍历是否结束(使用Null标志符来判断)
算法思路:
1、在根结点后加入Null标志符
2、pop第一个结点出来,进行判断,1)若该结点不为空,则把左右孩子结点append进来,2)若为空(此处else可以省略),进一步判断q是否为空,1.1)不为空,还有结点,遍历未结束,则append标志符,depth++,1.2)为空证明遍历结束。