Given a binary tree, return the postorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 2 / 3
return [3,2,1]
.
Note: Recursive solution is trivial, could you do it iteratively?
思路:
(1)題意為後序遍歷二叉樹。遍歷順序為左—>右—>根。
(2)考慮到用遞歸比較簡單,本文使用遞歸的思想進行解決,由於比較簡單這裡不累贅,詳見下方代碼。
(3)希望本文對你有所幫助。
算法代碼實現如下:
/** * @author liqq */ public ListPostorderTraversal(TreeNode root) { List result = new LinkedList (); if (root != null) { Post_order(result, root.left); Post_order(result, root.right); result.add(root.val); } return result; } private void Post_order(List result, TreeNode curr) { if (curr != null) { Post_order(result, curr.left); Post_order(result, curr.right); result.add(curr.val); } }