2021-10-05
作者:互联网
Morris遍历總結
Morris原理總結
核心點總結:
主要是根據左子樹最右子結點是否空或不爲空但指向當前cur結點為契機判斷執行不同流程 。
算法時間複雜度O(N),空間複雜度O(1)
Morris流程説明:
主要分爲三個大步驟:
-
cur結點是否有左子樹 ,若沒有直接移動到右子樹 即 cur = cur.right;
-
**定義變量mostRight **
-
-
cur結點有左子樹 ,
找到cur結點下左子樹最右子樹;
-
- 當mostRight.right == null (第一次來到),mostRight.right = cur;
cur = cur.left (cur往左下移動)
- 當mostRight.right == null (第一次來到),mostRight.right = cur;
-
- 當mostRight.right == cur (第二次來到),mostRight.right = null;
cur = cur.right (cur往右結點移動)
- 當mostRight.right == cur (第二次來到),mostRight.right = null;
-
-
當cur == null時,遍歷停止 ;
Morris 簡便圖形
标签:左子,10,right,cur,05,結點,mostRight,Morris,2021 来源: https://blog.csdn.net/u010416866/article/details/120615627