題目描述:
給定乙個二叉樹,返回它的前序遍歷。
分析:
遞迴演算法與非遞迴演算法。在非遞迴的方法中,使用輔助棧stack,右子樹先入棧左子樹**棧,就是根、左、右的順序。
**:
/**
* definition for a binary tree node.
* public class treenode
* }*///遞迴演算法
class solution
res.add(root.val); //非空的情況
preorder(root.left,res);
preorder(root.right,res);
return res;
}public void preorder(treenode root,listlist)
list.add(root.val); //先將該節點的值加入list,再判斷其左右子樹
preorder(root.left,list);
preorder(root.right,list);
}}//非遞迴演算法 利用輔助棧 先入後出
class solution
stackstack = new stack(); //利用棧遞迴
stack.push(root);
while(!stack.isempty())
return res;
}}
LeetCode 144 二叉樹的前序遍歷
1.題目 2.解答 2.1.遞迴法 定義乙個存放樹中資料的向量 data,從根節點開始,如果節點不為空,那麼 definition for a binary tree node.struct treenode class solution vectortemp if root null return...
LeetCode 144 二叉樹的前序遍歷
給定乙個二叉樹,返回它的 前序 遍歷。示例 輸入 1,null,2,3 1 2 3 輸出 1,2,3 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?時間複雜度 o n 每個結點只會遍歷一次 空間複雜度 o n 遞迴實際上是要借助棧 definition for a binary tree no...
LeetCode 144 二叉樹的前序遍歷
給定乙個二叉樹,返回它的 前序 遍歷。示例 輸入 1,null,2,3 1 2 3 輸出 1,2,3 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?時間複雜度 o n 每個結點遍歷一次 空間複雜度 o n 遞迴借助棧 definition for a binary tree node.stru...