原题链接:114. Flatten Binary Tree to Linked List
【思路】
当节点的左子树不为空时,将左子树放在节点的右边,并将节点的左边置为空,将右子树放在左子树的最右边。依次向右边遍历。
public class Solution {
public void flatten(TreeNode root) {
TreeNode p = root;
while (p != null) {
if(p.left != null) {
TreeNode left = p.left;
while(left.right != null) left = left.right;
left.right = p.right;
p.right = p.left;
p.left = null;
}
p = p.right;
}
}
}
225 / 225
test cases passed Runtime: 1 ms Your runtime beats 29.33% of javasubmissions.
本文介绍了一种将二叉树结构通过特定算法转换为链表的方法。该方法利用递归思想,通过调整节点的左右子树指针来实现。首先检查当前节点的左子树是否为空,如果不为空,则找到左子树的最右侧节点并将其右指针指向当前节点的右子树,然后将当前节点的右指针指向左子树,最后将当前节点的左指针置空。
848

被折叠的 条评论
为什么被折叠?



