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

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 【Leetcode】Recover Binary Search Tree

【Leetcode】Recover Binary Search Tree

來源:程序員人生   發(fā)布時間:2016-06-04 08:46:50 閱讀次數(shù):2418次

題目鏈接:https://leetcode.com/problems/recover-binary-search-tree/

題目:

Two elements of a binary search tree (BST) are swapped by mistake.

Recover the tree without changing its structure.

Note:
A solution using O(n) space is pretty straight forward. Could you devise a constant space solution?

思路:

1.中序 保存所有結(jié)點(diǎn)  空間復(fù)雜度O(n)

2.中序遞歸 保存前1個結(jié)點(diǎn)的指針 找到不對的結(jié)點(diǎn)

算法:

public void recoverTree(TreeNode root) { inorder(root); if (third != null) {// 2次逆序 int tmp = first.val; first.val = third.val; third.val = tmp; } else {// 1次逆序 int tmp = second.val; second.val = first.val; first.val = tmp; } } TreeNode pre, first, second, third; public void inorder(TreeNode root) { if (root == null) return; inorder(root.left); if (pre == null) { pre = root; } else { if (root.val < pre.val) { if (first == null) { // 如果第1次逆序 需要交換first和second結(jié)點(diǎn) first = pre; second = root; } else {// 如果第2次逆序 只需要交換first和third結(jié)點(diǎn) third = root; } } } pre = root; inorder(root.right); }


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 黄污网 | 亚洲欧美日韩在线精品一区二区 | 一区二区三区四区在线免费观看 | 中文字幕日韩一区二区不卡 | 在线午夜视频 | 日本欧美在线 | 国产一区二区三区视频在线观看 | 亚洲国产aaa毛片无费看 | 亚洲最大视频网站 | 午夜影院免费体验 | 在线国产小视频 | 亚洲狠狠 | 国产精品日韩一区二区三区 | 亚洲春色另类 | 在线欧美一级毛片免费观看 | 波多野结衣午夜 | 欧美精品黑人性xxxx | 亚洲国产精品乱码在线观看97 | 最好免费高清视频在线看 | 欧美激情免费a视频 | 香蕉免费看一区二区三区 | 日本在线不卡免费视频一区 | 黄页网址免费观看18网站 | 中文亚洲欧美 | 亚洲免费高清 | 国内精品久久久久影院亚洲 | 成人亚洲精品一区 | 校园春色自拍偷拍 | www.欧美xxxx| 欧美一级毛片不卡免费观看 | 久久久久99这里有精品10 | 亚洲综合国产精品 | 最近在线中文字幕8 | 亚洲欧美日韩不卡一区二区三区 | 国产精品亚洲高清一区二区 | 波多野结衣一区二区三区高清在线 | 黄色毛片播放 | 久草免费小视频 | 国产欧美一区二区三区免费 | 最近中文免费字幕8 | 亚洲第一精品夜夜躁人人爽 |