五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

二叉樹的遍歷(遞歸)

2023-07-18 08:39 作者:薄荷硬糖醬  | 我要投稿

144. 二叉樹的前序遍歷

難度簡單

1087

給你二叉樹的根節(jié)點?root?,返回它節(jié)點值的?前序?遍歷。

?

示例 1:

輸入:root = [1,null,2,3]輸出:[1,2,3]

示例 2:

輸入:root = []輸出:[]

示例 3:

輸入:root = [1]輸出:[1]

示例 4:

輸入:root = [1,2]輸出:[1,2]

示例 5:

輸入:root = [1,null,2]輸出:[1,2]

?

提示:

  • 樹中節(jié)點數(shù)目在范圍?[0, 100]?內(nèi)

  • -100 <= Node.val <= 100

正確做法:

/**

?*?Definition?for?a?binary?tree?node.

?*?struct?TreeNode?{

?*?????int?val;

?*?????TreeNode?*left;

?*?????TreeNode?*right;

?*?????TreeNode()?:?val(0),?left(nullptr),?right(nullptr)?{}

?*?????TreeNode(int?x)?:?val(x),?left(nullptr),?right(nullptr)?{}

?*?????TreeNode(int?x,?TreeNode?*left,?TreeNode?*right)?:?val(x),?left(left),?right(right)?{}

?*?};

?*/

class?Solution?{

public:

????void?traversaltree(TreeNode?*cur,?vector<int>&?vec)

????{

????????if(cur==nullptr)return;

????????vec.push_back(cur->val);

????????traversaltree(cur->left,vec);

????????traversaltree(cur->right,vec);

????}


????vector<int>?preorderTraversal(TreeNode*?root)?{

????????vector<int>?ans;

????????traversaltree(root,?ans);

????????return?ans;

????}

};

注意:遞歸算法中的形參vector要傳引用,不然無法記錄


94. 二叉樹的中序遍歷

難度簡單

1862

給定一個二叉樹的根節(jié)點?root?,返回?它的?中序?遍歷?。

?

示例 1:

輸入:root = [1,null,2,3]輸出:[1,3,2]

示例 2:

輸入:root = []輸出:[]

示例 3:

輸入:root = [1]輸出:[1]

?

提示:

  • 樹中節(jié)點數(shù)目在范圍?[0, 100]?內(nèi)

  • -100 <= Node.val <= 100

?

/**

?*?Definition?for?a?binary?tree?node.

?*?struct?TreeNode?{

?*?????int?val;

?*?????TreeNode?*left;

?*?????TreeNode?*right;

?*?????TreeNode()?:?val(0),?left(nullptr),?right(nullptr)?{}

?*?????TreeNode(int?x)?:?val(x),?left(nullptr),?right(nullptr)?{}

?*?????TreeNode(int?x,?TreeNode?*left,?TreeNode?*right)?:?val(x),?left(left),?right(right)?{}

?*?};

?*/

class?Solution?{

public:

????void?traversaltree(TreeNode?*cur,?vector<int>&?vec){

????????if(cur==nullptr)return;

????????traversaltree(cur->left,?vec);

????????vec.push_back(cur->val);

????????traversaltree(cur->right,?vec);

????}

????vector<int>?inorderTraversal(TreeNode*?root)?{

????????vector<int>?ans;

????????traversaltree(root,?ans);

????????return?ans;

????}

};



145. 二叉樹的后序遍歷

難度簡單

1057

給你一棵二叉樹的根節(jié)點?root?,返回其節(jié)點值的?后序遍歷?。

?

示例 1:

輸入:root = [1,null,2,3]輸出:[3,2,1]

示例 2:

輸入:root = []輸出:[]

示例 3:

輸入:root = [1]輸出:[1]

?

提示:

  • 樹中節(jié)點的數(shù)目在范圍?[0, 100]?內(nèi)

  • -100 <= Node.val <= 100

?

進階:遞歸算法很簡單,你可以通過迭代算法完成嗎?

通過次數(shù)644,390提交次數(shù)844,674

/**

?*?Definition?for?a?binary?tree?node.

?*?struct?TreeNode?{

?*?????int?val;

?*?????TreeNode?*left;

?*?????TreeNode?*right;

?*?????TreeNode()?:?val(0),?left(nullptr),?right(nullptr)?{}

?*?????TreeNode(int?x)?:?val(x),?left(nullptr),?right(nullptr)?{}

?*?????TreeNode(int?x,?TreeNode?*left,?TreeNode?*right)?:?val(x),?left(left),?right(right)?{}

?*?};

?*/

class?Solution?{

public:

????void?traversaltree(TreeNode?*cur,?vector<int>&?vec){

????????if(cur==nullptr)return;

????????traversaltree(cur->left,?vec);

????????traversaltree(cur->right,?vec);

????????vec.push_back(cur->val);

????}


????vector<int>?postorderTraversal(TreeNode*?root)?{

????????vector<int>?ans;

????????traversaltree(root,?ans);

????????return?ans;

????}

};


二叉樹的遍歷(遞歸)的評論 (共 條)

分享到微博請遵守國家法律
汾西县| 张家口市| 新安县| 和龙市| 织金县| 绍兴县| 沭阳县| 吉安市| 南昌县| 望江县| 呼玛县| 泰宁县| 金湖县| 呼伦贝尔市| 临高县| 新乡市| 洞头县| 五台县| 台中市| 宁强县| 大新县| 磐安县| 平定县| 荔波县| 衡阳市| 抚松县| 元朗区| 广宁县| 中阳县| 沙坪坝区| 都昌县| 棋牌| 襄城县| 翁牛特旗| 广汉市| 白城市| 虎林市| 弥渡县| 林甸县| 五大连池市| 清流县|