IT技術(shù)小屋

          秋風(fēng)秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評(píng)論 :: 0 Trackbacks
          求二叉搜索樹的中序后繼節(jié)點(diǎn)

          分析:
          1. 如果目標(biāo)節(jié)點(diǎn)的右子樹不為空,則返回右子樹的最小節(jié)點(diǎn);
          2. 如果目標(biāo)節(jié)點(diǎn)的右子樹為空,則從根節(jié)點(diǎn)開始遍歷。
          實(shí)現(xiàn)代碼如下:
           1 public class Solution {
           2     public TreeNode inOrderSuccessor(TreeNode root, TreeNode target) {
           3         if (target == nullreturn null;
           4         if (target.right != nullreturn minValue(target.right);
           5         TreeNode succ = null;
           6         while (root != null) {
           7             if (target.val < root.val) {
           8                 succ = root;
           9                 root = root.left;
          10             } else if (target.val > root.val) {
          11                 root = root.right;
          12             } else {
          13                 break;
          14             }
          15         }
          16         return succ;
          17     }
          18 
          19     private TreeNode minValue(TreeNode root) {
          20         while (root.left != null) {
          21             root = root.left;
          22         }
          23         return root;
          24     }
          25 }
          posted on 2013-12-27 11:06 Meng Lee 閱讀(211) 評(píng)論(0)  編輯  收藏 所屬分類: 待字閨中
          主站蜘蛛池模板: 保亭| 京山县| 虹口区| 延长县| 株洲县| 郎溪县| 甘孜| 济宁市| 任丘市| 蒲江县| 西昌市| 新河县| 大安市| 高平市| 阳曲县| 奈曼旗| 云南省| 肇州县| 鄂托克旗| 齐齐哈尔市| 利川市| 德昌县| 道孚县| 襄樊市| 达拉特旗| 康乐县| 内黄县| 大名县| 南部县| 敖汉旗| 武城县| 丰原市| 石台县| 香格里拉县| 日土县| 托克逊县| 台州市| 阳春市| 大足县| 轮台县| 白河县|