需求是这样的
1
2 3
4 5 6 7
8 9
假如有这样一棵树,非二叉
开始是前序遍历 845269731
然后假如有次访问到了 7了 我想回复之前的访问状态,但只恢复到5,挨个把之前被访问的节点的是否访问设置成false
要达到这样的话,访问就必须以 79625 的顺序来访问并设置,做了每半天没做出来
再作一次遍历即可,访问到5时设定开始标志,访问到7时结束,开始与结束之间访问的节点设置成false。
看看能不能满足需求
算法思想:
无论何种遍历,首先第一步逻辑是必须,遍历到每一个节点。
也即是递归。而递归有一个if作为结束条件。
1.你所提问的问题的逻辑,不要写在结束条件的逻辑里。
2.除了叶子节点外,其他节点在递归过程都会访问2次。这个刚可以完成你的需求:(挨个把之前被访问的节点的是否访问设置成false )
3.善用成员变量-(实际上是所谓一个类里边的全局变量来使用)。
LZ的需求只要注意我提的三点,出功能不是难事,所写几次多测几次吧。