题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

/*
public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;
    public TreeNode (int x)
    {
        val = x;
    }
}*/
using System.Collections.Generic;
class Solution
{
    public TreeNode Convert(TreeNode pRootOfTree)
    {
        Stack<TreeNode> stack = new Stack<TreeNode>();
        if(pRootOfTree == null) return pRootOfTree;
        stack.Push(pRootOfTree);
        TreeNode cur;
        TreeNode pre = null;
        TreeNode head = pRootOfTree;
        bool isFirst = true;
        while(stack.Count != 0){
            cur = stack.Pop();
            if(cur != null){
                if(cur.right != null) stack.Push(cur.right);
                stack.Push(cur);
                stack.Push(null);
                if(cur.left != null) stack.Push(cur.left);
            }
            else{
                if(isFirst){
                    cur = stack.Pop();
                    head = cur;
                    pre = cur;
                    isFirst = false;
                }
                else{
                    cur = stack.Pop();
                    pre.right = cur;
                    cur.left = pre;
                    pre = cur;
                }
            }
        }
        return head;
    }
}

全部评论

相关推荐

合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务