网站建设包括啥,有什么免费做代理的网站,seo外链论坛,大连工业大学研究生分数线文章目录题目描述解法 思路思路一思路二题目描述 我佛了#xff0c;这道题挺描述不明的#xff0c;有坑#xff0c;过不了oj建议马上看评论 or 题解 解法 思路
思路一
代码就不贴了#xff0c;过不去先序遍历#xff0c;按序存储val到一个ArrayList。然后用…
文章目录题目描述解法 思路思路一思路二题目描述 我佛了这道题挺描述不明的有坑过不了oj建议马上看评论 or 题解 解法 思路
思路一
代码就不贴了过不去先序遍历按序存储val到一个ArrayList。然后用这个ArrayList来构造单链表即可注意left置空
思路二
递归把左子树、右子树弄成单链表存储。然后left null再把左子树接到right然后把右子树接到当前最右边的right。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {// 递归public void flatten(TreeNode root) {if(root null){return;}// 先保存左右子树TreeNode left root.left;TreeNode right root.right;// 都弄直了再连上flatten(left);flatten(right);// 左子树置空root.left null;root.right left;// 取到最右边while(root.right ! null){root root.right;}root.right right;}
}无注释自底向上注意结点关系处理的先后关系
class Solution {public void flatten(TreeNode root) {if(root null) {return;}TreeNode left root.left;TreeNode right root.right;flatten(root.left);flatten(root.right);root.left null;root.right left;while(root.right ! null) {root root.right;}root.right right;}
}