應該交換3和22. 4 3 2 1=>應交換4和1這兩種序列對應了不符合條件的BST的中序遍歷序列的所有可能性---兩個節點中序遍歷相鄰/不相鄰如果我們用一個數組swap保存所有中序遍歷不遞增">

多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Recover Binary Search Tree [leetcode]

Recover Binary Search Tree [leetcode]

來源:程序員人生   發布時間:2014-10-02 08:00:01 閱讀次數:2373次

本題是在中序遍歷的基礎上,找不合規范(不是遞增)的樹節點對,然后交換

首先看兩種序列:

1. 1 3 2 4=>應該交換3和2

2. 4 3 2 1=>應交換4和1

這兩種序列對應了不符合條件的BST的中序遍歷序列的所有可能性---兩個節點中序遍歷相鄰/不相鄰

如果我們用一個數組swap保存所有中序遍歷不遞增的結果,那么這個數組只可能是2或者4的大小

而我們交換數組中節點對內容,只需交換第一個和最后一個樹節點對的內容

vector<TreeNode *> swap; TreeNode * pre; void recoverTree(TreeNode *root) { pre = new TreeNode(-999999); swap = vector<TreeNode *>(); inorder(root); if (swap.size() > 1) { int val = swap[0]->val; swap[0]->val = swap[swap.size() - 1]->val; swap[swap.size() - 1]->val = val; } } void inorder(TreeNode * root) { if (root == NULL) return; inorder(root->left); if (pre->val > root->val) { swap.push_back(pre); swap.push_back(root); } pre = root; inorder(root->right); }
由于只交換第一個和最后一個樹節點內容,我們可以只保存第一個和最后一個Node

if(!first) first = pre;

last = root;

替換

swap.push_back(pre); swap.push_back(root);

代碼如下:

TreeNode * first, * last; TreeNode * pre; void recoverTree(TreeNode *root) { pre = new TreeNode(-999999); first = last = NULL; inorder(root); if (first) { int val = first->val; first->val = last->val; last->val = val; } } void inorder(TreeNode * root) { if (root == NULL) return; inorder(root->left); if (pre->val > root->val) { if (!first) first = pre; last = root; } pre = root; inorder(root->right); }



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 美女福利视频国产片 | 国产成人影院在线观看 | 日本人与亚洲人hd | 中文乱码在线观看 | 美女一级牲交毛片视频 | 性生活一级毛片 | 久久精品国产久精国产 | 午夜欧美在线 | 澳门特级α片免费观看视频 | 亚洲天堂网视频 | 欧美18videosex性欧 | 欧美日本一 | 欧美片欧美日韩国产综合片 | 国产成人精品无缓存在线播放 | 成人国产欧美精品一区二区 | 色综合欧美综合天天综合 | 免费国产一区二区在免费观看 | 亚洲欧美日韩中文字幕网址 | 国产精品福利社 | 中文字幕精品一区二区三区视频 | 日本xxxⅹ色视频在线观看网站 | 欧美国产日韩精品 | 精品日韩 | 最近中文免费字幕在线播放 | 国产一起色一起爱 | 欧美在线伊人 | 日韩精品无码一区二区三区 | 丁香婷婷综合五月六月 | 又粗又大又黄又爽的免费视频 | 永久精品| 羞羞视频免费观看网站 | 在线免费看a爱片 | 国产精品 第二页 | 国产精品久久精品视 | 亚洲一区色 | 精品自拍视频在线观看 | 亚洲精品国自产拍在线观看 | 欧美日韩精品一区二区三区视频在线 | 男女性刺激爽爽免费视频 | 国产成人免费视频精品一区二区 | 鸥美性 |