演算法刷題之二叉樹

2021-10-09 23:53:25 字數 2402 閱讀 7893

二叉樹的遍歷:

前序遍歷: 根左右

中序遍歷:左根右

後序遍歷: 左右根

計算二叉樹有多少個結點

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}

/*

// 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)

};

114. 二叉樹展開為鍊錶

難度中等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題目刷二叉樹的題關鍵在於框架,本質上我們得摸清楚遍歷的情況。在做二叉樹的時候,重點考慮兩個方面。第一,以什麼順序進行遍歷,無非就是前序 後序 中序 層序次序上的變種。對於遞迴函式的呼叫,我們嚴格按照函式給出定義去構建。不需要每次過分糾結在一層層遞迴中,把自己搞暈。因此,遞迴框...