145 二叉樹的後序遍歷(困難題)

2021-10-01 15:10:42 字數 1383 閱讀 4697

題目描述:

給定乙個二叉樹,返回它的 後序 遍歷。

示例:輸入: [1,null,2,3]

1\2

/3

輸出: [3,2,1]

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

private

void

postorder

(treenode root)

if(root.right != null)

list.

add(root.val);}

}}

非遞迴遍歷,使用兩個棧:

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

if(root.right != null)}}

while

(!st2.

empty()

)return list;

}}

非遞迴遍歷,使用乙個棧:

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

else

if(c.right != null && root != c.right)

else}}

return list;

}}

莫里斯遍歷:

class

solution

if(cur2.right == null)

else

} cur1 = cur1.right;

}printedge

(root)

;return list;

}private

void

printedge

(treenode root)

reverseedge

(tail);}

private treenode reverseedge

(treenode from)

return pre;

}}

145 二叉樹的後序遍歷

題目描述 給定乙個二叉樹,返回它的 後序 遍歷。示例 輸入 1,null,2,3 輸出 3,2,1 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?方法1 主要思路 1 使用先序遍歷的思想,只不過從根,左,右,變成了使用根,右,左的順序壓棧,將最後的結果反序即可 definition for a...

LeetCode 二叉樹的後序遍歷 145

給定乙個二叉樹,返回它的 後序 遍歷。示例 輸入 1,null,2,3 1 2 3 輸出 3,2,1 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?這道題難度和n叉樹的後序遍歷是等同的,但是標註為困難。首先我們都知道,棧頂元素一般都是根元素,彈出根元素,加入根元素的左節點 右節點後,位於棧頂的...

LeetCode 145 二叉樹的後序遍歷

題目 給定乙個二叉樹,返回它的 後序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 3,2,1 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?思路 等同於144題來思考,但是棧的操作要做些許的變化。根據後序遍歷的 左右中 順序,中間節點應當先入棧,然後考慮中間節點是否包含的子節點,如...