114. 二叉树展开为链表

Posted 潜行前行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了114. 二叉树展开为链表相关的知识,希望对你有一定的参考价值。

  1. 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表:

展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例 1:

输入:root = [1,2,5,3,4,null,6]
输出:[1,null,2,null,3,null,4,null,5,null,6]

/**
 * 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) {
        helper(root);    
    }
    // 返回末尾节点,不为bull
    private TreeNode helper(TreeNode root){
        if(root == null)
            return root;
        if(root.left!=null){
            TreeNode tail = helper(root.left);
            tail.right = root.right;
            root.right = root.left;
            root.left = null;
            if(tail.right!=null){
                return helper(tail.right);
            }else{
                return tail;
            }
        }
        if(root.right!=null){
            return helper(root.right);
        }
        return root;
    }
}

以上是关于114. 二叉树展开为链表的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 114.二叉树展开为链表

⭐算法入门⭐《二叉树》中等01 —— LeetCode 114. 二叉树展开为链表

[LeetCode] 114. 二叉树展开为链表 ☆☆☆(深度遍历)

114. 二叉树展开为链表

LeetCode(114): 二叉树展开为链表

leetcode 114. 二叉树展开为链表(dfs)