其他分享
首页 > 其他分享> > 114. 二叉树展开为链表

114. 二叉树展开为链表

作者:互联网

114. 二叉树展开为链表:

题目链接 :114. 二叉树展开为链表

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


思路:

1、迭代:先序


AC代码:

/**
 * 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) {
        while(root!=null)
        {
            if(root.left==null)
            {
                root=root.right;
            }
            else{
                TreeNode prev=root.left;
                while(prev.right!=null)
                {
                    prev=prev.right;
                }
                prev.right=root.right;
                root.right=root.left;
                root.left=null;
                root=root.right;
            }
        }
    }
}

标签:right,TreeNode,val,链表,114,二叉树,root,left
来源: https://blog.csdn.net/weixin_45750855/article/details/121645730