leetocde 114 二叉樹展開為鍊錶

2021-10-01 11:05:52 字數 747 閱讀 1434

給定乙個二叉樹,原地將它展開為鍊錶。

例如,給定二叉樹

解題思路:借鑑windliang發布在leetcode題解上的第乙個思路,利用先序遍歷,將二叉樹展開成乙個鍊錶。

將左子樹插入到右子樹的地方;

將原來的右子樹接到左子樹的最右邊節點;

考慮新的右子樹的根節點,一直重複上邊的過程,直到新的右子樹為 null;

其c++**如下:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

pre-

>right = root-

>right;

// 左子樹的葉子節點的右節點拼接右子樹

root-

>right = root-

>left;

//將當前節點的左子樹拼接為右子樹

root-

>left =

null

;//將左子樹變為null

root = root-

>right;

//迭代至當前節點的下乙個右子節點,因為左子節點已經為空}}}};

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...

114 二叉樹展開為鍊錶

首先是原地演算法的定義 演算法原地工作的含義是指不需要任何額外的輔助,演算法所需要的輔助空間不隨著問題的規模而變化,是乙個確定的值。通過觀察示例可以知道,我們可以猜想,大方向是前序遍歷。第一種思路 dfs。設定乙個全域性的指標 這種做法有點脫離原地演算法,因為多開闢了乙個指標變數 核心思想是拿到乙個...