多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Flatten Binary Tree to Linked List

Flatten Binary Tree to Linked List

來源:程序員人生   發布時間:2015-01-18 10:34:12 閱讀次數:4064次

本文是在學習中的總結,歡迎轉載但請注明出處:http://blog.csdn.net/pistolove/article/details/42744919



Given a binary tree, flatten it to a linked list in-place.

For example,
Given

1 / 2 5 / 3 4 6

The flattened tree should look like:
1 2 3 4 5 6

思路:

(1)題意為將給定的2叉樹轉化為“只有右孩子節點”的鏈表(樹)。

(2)由上圖可知,如果右子樹不為空,則右子樹最后肯定為左子樹最有1個靠右的孩子節點的右子樹,而左子樹最后成為整棵樹的右子樹。這樣,首先判斷左子樹是不是為空,不為空就尋覓到樹根的左孩子節點,然后尋覓該節點是不是有右孩子,如果有繼續尋覓,直到找到屬于葉子節點的右孩子,此時,該節點的右子樹“指向”當前樹的右子樹,并將當前左子樹變成樹根的右孩子,將整棵樹左孩子置為空。最后,根節點“指向”根節點的右孩子,繼續上述操作,直到整棵樹遍歷完即得到結果。

(3)希望本文對你有所幫助。


算法代碼實現以下:

/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public void flatten(TreeNode root) { while (root != null) { if (root.left != null) { TreeNode pre = root.left; while (pre.right != null) pre = pre.right; pre.right = root.right; root.right = root.left; root.left = null; } root = root.right; } }




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲精品日韩一区二区 | 日一区二区三区 | 亚洲欧洲无码一区二区三区 | v片免费在线观看 | 一区二区国产精品 | 中文字幕一区二区三区在线观看 | 毛片新网址 | 欧美男男激情videos高清不卡 | 国产亚洲精品一区久久 | 亚洲精品亚洲人成在线播放 | 一本久草| 亚洲天堂成人在线 | www.操操操.com| 中文字幕一区二区三区精品 | 最近新中文字幕大全高清 | 中文字幕亚洲专区 | 午夜免费啪视频观看网站 | ppypp日本欧美一区二区 | 欧美精品成人久久网站 | 中文字幕2区 | 亚洲精品久久久久久下一站 | 日本午夜三级 | 日本成片视频 | 国产69精品久久 | 亚洲成年人影院 | 久久久久日韩精品无 | 亚洲欧美日韩在线观看播放 | 97久久综合区小说区图片专区 | 国产精品揄拍100视频最近 | 久久影视一区 | 色77777| 国产欧美精品区一区二区三区 | 乱小说欧美综合 | 中文字幕精品在线观看 | 自拍偷拍一区 | 国产精品久久亚洲不卡4k岛国 | 黄色大片aa | 亚洲综合片 | 中文字幕26页 | 日本一区二区三区视频在线观看 | 亚洲精品国产啊女成拍色拍 |