二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历
生活随笔
收集整理的這篇文章主要介紹了
二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
leetcode
???1
????\
?????2
????/
???3?
//????public?List?postorderTraversal(TreeNode?root)?{
//????????List?list?=?new?ArrayList<>();
//????????postorder(root,?list);
//????????return?list;
//????}
//????public?void?postorder(TreeNode?root,?List?list)?{
//????????if?(root?==?null)?return;
//????????postorder(root.left,?list);
//????????postorder(root.right,?list);
//????????list.add(root.val);
//????}
????
//?迭代
public?List?postorderTraversal(TreeNode?root)?{
????LinkedList?output?=?new?LinkedList<>();if?(root?==?null)?{return?output;
????}
????LinkedList?stack?=?new?LinkedList<>();
????stack.add(root);while?(!stack.isEmpty())?{
????????TreeNode?node?=?stack.pollLast();
????????output.addFirst(node.val);if?(node.left?!=?null)?{
????????????stack.add(node.left);
????????}if?(node.right?!=?null)?{
????????????stack.add(node.right);
????????}
????}return?output;
}
????vector<int>?v;
????vector?stack;if?(root)?{stack.push_back(root);
????}while?(stack.size()>0){
????????TreeNode?*n?=?stack.back();stack.pop_back();
????????v.push_back(n->val);if?(n->left){stack.push_back(n->left);
????????}?if?(n->right)?{stack.push_back(n->right);
????????}
????}std::reverse(v.begin(),?v.end());??//?the?trickreturn?v;
}
LeetCode算法-145. 二叉樹的后序遍歷
145. 二叉樹的后序遍歷
題目
給定一個二叉樹,返回它的 后序?遍歷。
示例:
輸入:?[1,null,2,3]?????1
????\
?????2
????/
???3?
輸出: [3,2,1]
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal 著作權歸領扣網絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。
題解
Java
//?遞歸//????public?List?postorderTraversal(TreeNode?root)?{
//????????List?list?=?new?ArrayList<>();
//????????postorder(root,?list);
//????????return?list;
//????}
//????public?void?postorder(TreeNode?root,?List?list)?{
//????????if?(root?==?null)?return;
//????????postorder(root.left,?list);
//????????postorder(root.right,?list);
//????????list.add(root.val);
//????}
????
//?迭代
public?List?postorderTraversal(TreeNode?root)?{
????LinkedList?output?=?new?LinkedList<>();if?(root?==?null)?{return?output;
????}
????LinkedList?stack?=?new?LinkedList<>();
????stack.add(root);while?(!stack.isEmpty())?{
????????TreeNode?node?=?stack.pollLast();
????????output.addFirst(node.val);if?(node.left?!=?null)?{
????????????stack.add(node.left);
????????}if?(node.right?!=?null)?{
????????????stack.add(node.right);
????????}
????}return?output;
}
C++
vector<int>?postorderTraversal1(TreeNode?*root)?{????vector<int>?v;
????vector?stack;if?(root)?{stack.push_back(root);
????}while?(stack.size()>0){
????????TreeNode?*n?=?stack.back();stack.pop_back();
????????v.push_back(n->val);if?(n->left){stack.push_back(n->left);
????????}?if?(n->right)?{stack.push_back(n->right);
????????}
????}std::reverse(v.begin(),?v.end());??//?the?trickreturn?v;
}
更多干貨文章
博客:www.qiuxuewei.com
微信公眾號:「@開發(fā)者成長之路」
「一個沒有雞湯只有干貨的公眾號」
總結
以上是生活随笔為你收集整理的二叉树后序遍历_LeetCode算法145. 二叉树的后序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑复制粘贴操作方法是什么
- 下一篇: 物联网通信协议_自动化机器上的物联网网关