題目描述:
給定乙個二叉樹,返回它的 後序 遍歷。
示例:輸入: [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題來思考,但是棧的操作要做些許的變化。根據後序遍歷的 左右中 順序,中間節點應當先入棧,然後考慮中間節點是否包含的子節點,如...