leetcode114. 二叉树展开为链表
生活随笔
收集整理的這篇文章主要介紹了
leetcode114. 二叉树展开为链表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個二叉樹,原地將它展開為鏈表。
例如,給定二叉樹
? ? 1
? ?/ \
? 2 ? 5
?/ \ ? \
3 ? 4 ? 6
將其展開為:
1
?\
? 2
? ?\
? ? 3
? ? ?\
? ? ? 4
? ? ? ?\
? ? ? ? 5
? ? ? ? ?\
? ? ? ? ? 6
思路:所有左子樹的最右節(jié)點接上右子樹即可。
比如例子中:3接上4,4接上5
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public void flatten(TreeNode root) {while (root != null) {if (root.left != null) {// 找左子樹最右邊的節(jié)點TreeNode pre = root.left;while (pre.right != null)pre = pre.right;//將原來的右子樹接到左子樹的最右邊節(jié)點pre.right = root.right;// 將左子樹插入到右子樹的地方root.right = root.left;root.left = null; }//考慮下一個節(jié)點root = root.right;}} }?
總結
以上是生活随笔為你收集整理的leetcode114. 二叉树展开为链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础技巧总结(五)
- 下一篇: TCP与UDP特点与区别