二叉樹展開為鍊錶

2022-08-11 08:51:11 字數 682 閱讀 9591

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

例如,給定二叉樹

1

/ \2 5

/ \ \

3 4 6

將其展開為:

1

\ 2\3

\4\5

\6

解法解法一:

1.對樹進行先序遍歷,把每遍歷乙個節點就將該節點入隊

2.遍歷完之後,對佇列進行出隊操作

3.每齣乙個節點,就將該節點的left指標置為null,右指標指向下乙個出隊的節點

/**

* definition for a binary tree node.

* public class treenode

* } */

class

solution }}

public

void

pre(treenode root)

}

解法二:

/**

* definition for a binary tree node.

* public class treenode

* } */

class

solution

}}

二叉樹展開為鍊錶

給定乙個二叉樹,原地將它展開為鍊錶。例如,給定二叉樹 將其展開為 以根節點為基準,先處理左子樹,然後處理右子樹,當其左右子樹均轉化為鍊錶之後,再處理以該根節點所代表的樹,將其右子樹賦給臨時變數,設root.right root.left,並將左子樹置空,然後將臨時變數賦給root.right。pub...

二叉樹展開為鍊錶

給定乙個二叉樹,原地將它展開為鍊錶。例如,給定二叉樹 1 2 5 3 4 6 將其展開為 1 2 3 4 5 6解法1 前序遍歷,1.先儲存舊的右子樹,2.把左子樹賦值給root.right,把左子樹置為nil 3.遍歷找到最右邊的節點,把舊的右子樹接到最右邊的葉子節點上 4.根節點處理完成,向下遞...

114 二叉樹展開為鍊錶

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