二叉樹的遍歷:
前序遍歷: 根左右
中序遍歷:左根右
後序遍歷: 左右根
計算二叉樹有多少個結點
int count(treenode root)
226. 翻轉二叉樹
難度簡單645收藏分享切換為英文接收動態反饋
翻轉一棵二叉樹。
示例:
輸入:
4
/ \
2 7
/ \ / \
1 3 6 9
輸出:
4
/ \
7 2
/ \ / \
9 6 3 1
備註:這個問題是受到 max howell 的 原問題 啟發的 :
谷歌:我們90%的工程師使用您編寫的軟體(homebrew),但是您卻無法在面試時在白板上寫出翻轉二叉樹這道題,這太糟糕了。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
};
116. 填充每個節點的下乙個右側節點指標
難度中等258收藏分享切換為英文接收動態反饋
給定乙個完美二叉樹,其所有葉子節點都在同一層,每個父節點都有兩個子節點。二叉樹定義如下:
struct node
填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為null
。
初始狀態下,所有 next 指標都被設定為null
。
示例:
輸入:,"next":null,"right":,"val":2},"next":null,"right":,"next":null,"right":,"val":3},"val":1}
輸出:,"right":null,"val":6},"right":null,"val":5},"right":null,"val":4},"next":,"next":null,"right":,"val":3},"right":,"val":2},"next":null,"right":,"val":1}
/*114. 二叉樹展開為鍊錶// definition for a node.
class node
node(int _val) : val(_val), left(null), right(null), next(null) {}
node(int _val, node* _left, node* _right, node* _next)
: val(_val), left(_left), right(_right), next(_next) {}
};*/
class solution
void connecttwonode(node* node1,node* node2)
};
難度中等572收藏分享切換為英文接收動態反饋
給定乙個二叉樹,原地將它展開為乙個單鏈表。
例如,給定二叉樹
1
/ \2 5
/ \ \
3 4 6
將其展開為:
1
\ 2\3
\4\5
\6
通過次數85,514提交次數120,197
/**
* definition for a binary tree node.
* struct treenode
* treenode(int x) : val(x), left(nullptr), right(nullptr) {}
* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}
* };
*/class solution
p->right = right;}};
leetcode刷題python之二叉樹的層次遍歷
題目 給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 definition for a binary tree node.class treen...
演算法刷題 翻轉二叉樹
本文為個人解題思路整理,水平有限,有問題歡迎交流 乙個簡單的遞迴而已,入門級演算法題,其實沒啥記錄的價值,寫出來是因為看到個有趣的東西,莫名可愛 難度 入門 核心知識點 遞迴 力扣 翻轉一顆二叉樹 資料來源 4 2 7 1 3 6 9 輸出 4 7 2 9 6 3 1 將根節點作為當前父節點 開始處...
二叉樹刷題系列( )
本篇文章leetcode題目刷二叉樹的題關鍵在於框架,本質上我們得摸清楚遍歷的情況。在做二叉樹的時候,重點考慮兩個方面。第一,以什麼順序進行遍歷,無非就是前序 後序 中序 層序次序上的變種。對於遞迴函式的呼叫,我們嚴格按照函式給出定義去構建。不需要每次過分糾結在一層層遞迴中,把自己搞暈。因此,遞迴框...