国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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;

????}

};


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

分享到微博請遵守國家法律
岱山县| 塔城市| 莎车县| 高平市| 龙里县| 德州市| 湛江市| 华蓥市| 翁源县| 上蔡县| 桓台县| 永定县| 克东县| 金华市| 铁岭县| 遵化市| 嘉峪关市| 资中县| 苍山县| 桐乡市| 正镶白旗| 木里| 广安市| 栾城县| 米脂县| 宾阳县| 武夷山市| 开鲁县| 神木县| 陵川县| 奉节县| 桦甸市| 宣威市| 嘉荫县| 拜城县| 长岛县| 碌曲县| 台南县| 泽普县| 吴旗县| 交城县|