|
Morris遍历细节
|
|
假设来到当前节点cur,开始时cur来到头结点的位置
|
|
1) 如果cur没有左孩子,cur向右移动(cur=cur.right)
|
|
2) 如果cur有左孩子,找到左子树上最右的节点mostRight:
|
|
a. 如果mostRight的右指针指向空,让其指向cur,然后cur向左移动(cur=cur.left)
|
|
b. 如果mostRight的右指针指向cur,让其指向null,然后cur向右移动(cur = cur.right)
|
|
3) cur为空时停止遍历
|
|
|
|
|
|
|
|
需要左右树信息强整合则必须二叉树递归套路,否则,可以用Morris遍历. |