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

二叉搜索树与双向链表

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

中序遍历:递归

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
  public:
    TreeNode* Convert(TreeNode* pRootOfTree) {
      if (pRootOfTree == nullptr) {
        return nullptr;
      }
      
      Convert(pRootOfTree->left);
      
      if (pre == nullptr) {
        head = pRootOfTree;
        pre = pRootOfTree;
      } else {
        pre->right = pRootOfTree;
        pRootOfTree->left = pre;
        pre = pRootOfTree;
      }
      
      Convert(pRootOfTree->right);
      
      return head;
    }
  private:
    TreeNode *head = nullptr;
    TreeNode *pre = nullptr;
};

栈: 这里注意循环的终止条件

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
  public:
    TreeNode* Convert(TreeNode* pRootOfTree) {
      if (pRootOfTree == nullptr) {
        return nullptr;
      }
      
      Convert(pRootOfTree->left);
      
      if (pre == nullptr) {
        head = pRootOfTree;
        pre = pRootOfTree;
      } else {
        pre->right = pRootOfTree;
        pRootOfTree->left = pre;
        pre = pRootOfTree;
      }
      
      Convert(pRootOfTree->right);
      
      return head;
    }
  private:
    TreeNode *head = nullptr;
    TreeNode *pre = nullptr;
};
全部评论

相关推荐

2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生?
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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