二叉搜索时与双向链表python_剑指Offer(二十六) 二叉搜索树和双向链表
題目描述
輸入一棵二叉搜索樹,將該二叉搜索樹轉(zhuǎn)換成一個排序的雙向鏈表。要求不能創(chuàng)建任何新的結(jié)點,只能調(diào)整樹中結(jié)點指針的指向。
思路以及解答
主要是使用遞歸,設(shè)置一個head和end,head只在第一次設(shè)置值,后面就是將end的right指向當(dāng)前node,將當(dāng)前node的left指向end,把end指向當(dāng)前的node。
class?TreeNode?{????int?val?=?0;
????TreeNode?left?=?null;
????TreeNode?right?=?null;
????public?TreeNode(int?val)?{
????????this.val?=?val;
????}
}
public?class?Solution?{
????//?頭節(jié)點
????public?TreeNode?head?=?null;
????//?尾節(jié)點
????public?TreeNode?end?=?null;
????public?TreeNode?Convert(TreeNode?pRootOfTree)?{
????????invert(pRootOfTree);
????????return?head;
????}
????public?void?invert(TreeNode?node)?{
????????if?(node?==?null)?{
????????????return;
????????}
????????invert(node.left);
????????if?(end?==?null)?{
????????????head?=?node;
????????????end?=node;
????????}else{
????????????end.right?=?node;
????????????node.left?=?end;
????????????end?=node;
????????}
????????invert(node.right);
????}
}
此文章僅代表自己(本菜鳥)學(xué)習(xí)積累記錄,或者學(xué)習(xí)筆記,如有侵權(quán),請聯(lián)系作者刪除。人無完人,文章也一樣,文筆稚嫩,在下不才,勿噴,如果有錯誤之處,還望指出,感激不盡~
技術(shù)之路不在一時,山高水長,縱使緩慢,馳而不息。
公眾號:秦懷雜貨店
【作者簡介】:
秦懷,公眾號【秦懷雜貨店】作者,技術(shù)之路不在一時,山高水長,縱使緩慢,馳而不息。這個世界希望一切都很快,更快,但是我希望自己能走好每一步,寫好每一篇文章,期待和你們一起交流。
此文章僅代表自己(本菜鳥)學(xué)習(xí)積累記錄,或者學(xué)習(xí)筆記,如有侵權(quán),請聯(lián)系作者核實刪除。人無完人,文章也一樣,文筆稚嫩,在下不才,勿噴,如果有錯誤之處,還望指出,感激不盡~
總結(jié)
以上是生活随笔為你收集整理的二叉搜索时与双向链表python_剑指Offer(二十六) 二叉搜索树和双向链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ds哈希查找—二次探测再散列_大白话之哈
- 下一篇: python interactive w